Android 反压后不正确的停止应用程序

Android 反压后不正确的停止应用程序,android,android-mediaplayer,backpressure,Android,Android Mediaplayer,Backpressure,按下后退按钮后的日志: 11-07 22:48:08.376:D/AndroidRuntime(5325):关闭虚拟机 11-07 22:48:08.376:W/dalvikvm(5325):threadid=1:线程退出时出现未捕获异常(组=0x4162d700) 11-07 22:48:08.384:E/AndroidRuntime(5325):致命异常:主 11-07 22:48:08.384:E/AndroidRuntime(5325):java.lang.RuntimeExceptio

按下后退按钮后的日志:

11-07 22:48:08.376:D/AndroidRuntime(5325):关闭虚拟机 11-07 22:48:08.376:W/dalvikvm(5325):threadid=1:线程退出时出现未捕获异常(组=0x4162d700) 11-07 22:48:08.384:E/AndroidRuntime(5325):致命异常:主 11-07 22:48:08.384:E/AndroidRuntime(5325):java.lang.RuntimeException:无法销毁活动

{com.some.pack/com.some.packNY}: java.lang.NullPointerException 11-07 22:48:08.384: E/AndroidRuntime(5325):在 android.app.ActivityThread.performDestroyActivity

(ActivityThread.java:3627)11-07 22:48:08.384:E/AndroidRuntime(5325): 在 android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3645) 11-07 22:48:08.384:E/AndroidRuntime(5325):在 android.app.ActivityThread.access$1200(ActivityThread.java:153)11-07 22:48:08.384:E/AndroidRuntime(5325):在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1322) 11-07 22:48:08.384:E/AndroidRuntime(5325):在 android.os.Handler.dispatchMessage(Handler.java:99)11-07 22:48:08.384:E/AndroidRuntime(5325):在 android.os.Looper.loop(Looper.java:137)11-07 22:48:08.384: E/AndroidRuntime(5325):在 android.app.ActivityThread.main(ActivityThread.java:5289)11-07 22:48:08.384:E/AndroidRuntime(5325):在 java.lang.reflect.Method.Invokenactive(本机方法)11-07 22:48:08.384:E/AndroidRuntime(5325):在 java.lang.reflect.Method.invoke(Method.java:525)11-07 22:48:08.384: E/AndroidRuntime(5325):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run

(ZygoteInit.java:739)11-07 22:48:08.384:E/AndroidRuntime(5325):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)11-07 22:48:08.384:E/AndroidRuntime(5325):在 dalvik.system.NativeStart.main(本机方法)11-07 22:48:08.384: E/AndroidRuntime(5325):由以下原因引起:java.lang.NullPointerException 11-07 22:48:08.384:E/AndroidRuntime(5325):在 com.some.pack.NY.stop(NY.java:100)11-07 22:48:08.384: E/AndroidRuntime(5325):在com.some.pack.onDestroy(NY.java:106)11-07 22:48:08.384:E/AndroidRuntime(5325):在 android.app.Activity.performDestroy(Activity.java:5302)11-07 22:48:08.384:E/AndroidRuntime(5325):在 android.app.Instrumentation.callActivityOnDestroy

(Instrumentation.java:1117)11-07 22:48:08.384: E/AndroidRuntime(5325):在 android.app.ActivityThread.performDestroyActivity

(ActivityThread.java:3614)11-07 22:48:08.384:E/AndroidRuntime(5325): ... 11更多11-07 22:48:08.392:W/ActivityManager(408):强制 完成活动com.some.pack/.main活动11-07 22:48:09.079:W/ActivityManager(408):的活动暂停超时 活动记录{41985990 u0

com.some.pack/.MainActivity}11-07 22:48:09.095: W/设置(4780):设置电源菜单中的错误报告已从 android.provider.Settings.Secure to

android.provider.Settings.Global。11-07 22:48:09.095:E/Cryptfs(124): 未使用加密运行,正在中止11-07 22:48:09.923: I/进程(5325):发送信号。PID:5325信号:9 11-07 22:48:09.946: 带输入调度器(408):通道'419e2ff0 com.some.pack/com.some.pack.main活动(服务器)“~Consumer

关闭输入通道或发生错误。事件=0x9 11-07 22:48:09.946:E/InputDispatcher(408):通道'419e2ff0 com.some.pack/com.some.pack.main活动(服务器)“~

无法恢复的损坏,将予以处理


由于您没有发布日志,这就有点难理解了,但您的实现中肯定存在巨大的差距,这将导致NullPointerException,您正在单击侦听器中初始化“mp”和“mp2”,并在onDestroy中停止它们,但是您没有在方法“stop”中检查空值,这肯定会导致NPE,如果你去活动,并且没有按下播放按钮并为“mp和mp2”引用赋值,那么当按下后退时,调用onDestroy(调用stop)时,崩溃!因为mp和mp2是空的

希望有帮助


问候

因为您没有发布日志,所以要弄清楚这一点有点困难,但您的实现中肯定存在巨大的差距,这将导致NullPointerException,您正在单击侦听器中初始化“mp”和“mp2”,并在onDestroy中停止它们,但是您没有在方法“stop”中检查空值,这肯定会导致NPE,如果你去活动,并且没有按下播放按钮并为“mp和mp2”引用赋值,那么当按下后退时,调用onDestroy(调用stop)时,崩溃!因为mp和mp2是空的

希望有帮助


问候

在onPrepared()onStop()onDestroy()和onCompletin()中添加一个简单的if条件:


在onPrepared()onStop()onDestroy()和onCompletin()中添加一个简单的if条件:


logcat说了什么?如果你在OnDestroy()方法中注释“stop();”会发生什么?你应该调用
stop())
仅当
mp
mp2
存在并启动时。logcat怎么说?如果您将发布堆栈跟踪将更容易查看如果您在OnDestroy()方法中注释“stop();”会发生什么情况?仅当
mp
mp2
存在并启动时,您应该调用
stop()
public void onDestroy(){if(mp!=null&&mp2!=null){stop();}}}
right?即
public void onDestroy(){if(mp!=null&&mp2!=null){stop();}}
right?
  if(mp != null && mp2 != null){
    // Now You wont get runTime problems.
  }