Android DeadSystemException

目前,我们在HockeyApp崩溃报告中遇到了一个DeadSystemExceptionexception。 它发生在Android 7.0和Android 7.1上。 我们在以前版本的应用程序中没有遇到这种exception(它们目前都被用户使用),所以我猜这个exception是由一些代码改变引起的。 但是堆栈跟踪对此不是很有帮助。 任何想法? 感谢任何消化。

来自HockeyApp的堆栈跟踪:

 java.lang.RuntimeException: android.os.DeadSystemException at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3781) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) Caused by: android.os.DeadSystemException ... 8 more 

Solutions Collecting From Web of "Android DeadSystemException"

android.os.DeadSystemException的Android开发人员文档说:

核心Android系统已经死亡,正在经历一个运行时重新启动。 所有正在运行的应用程序将被及时杀死。

源代码没有什么帮助:

 package android.os; /** * The core Android system has died and is going through a runtime restart. All * running apps will be promptly killed. */ public class DeadSystemException extends DeadObjectException { public DeadSystemException() { super(); } } 

总的来说,它看起来像是由操作系统抛出,并且与我们的代码无关。

看看超类的javadoc, DeadObjectException ,支持这个理论:

您调用的对象已经死亡,因为其宿主进程不再存在。

 Fatal Exception: java.lang.RuntimeException: android.os.DeadSystemException 

这个exception是我开发的一个应用程序引起的,主要发生在MI设备上。

debugging后,我发现我试图从后台线程中启动当前服务(Say A)中的另一个服务(Say B),但是当startService(itService)方法时,服务A已经被startService(itService)

我发现到目前为止唯一的解决scheme是检查当前的服务A是否正在运行,然后再启动另一个服务B.根据您的实现,您可以使用各种方法之一来检查服务是否从这个答案运行。