DeadSystemException启动服务Android 7



在过去的几周中,我有崩溃记者:

Fatal Exception: java.lang.RuntimeException: Unable to start service com.####.MyService@ef705d8 with Intent { act=HIDE cmp=com.####/.MyService (has extras) }: java.lang.RuntimeException: android.os.DeadSystemException
       at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3344)
       at android.app.ActivityThread.-wrap21(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1583)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6121)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)

此崩溃存在于:

  • 所有三星设备7.0

  • 7.1.2

  • 上的所有Nexus设备

注意:

  • 这不是由于我们的应用程序的最新更新,而只是对这些电话的OS更新。

  • 这是一个非常非常频繁的崩溃(到目前为止,我们最大(。

  • 我们的用户没有报告崩溃(用户实际上可见此崩溃吗?(

  • 我们无法在我们的侧面重现

  • 正如您在堆栈跟踪中看到的那样,影响的代码仅是系统。我可以从我身边做很多事情来尝试抓住和处理这个问题。

我检查了Android DeadSystemexception的线程,但这对我没有太大帮助。

我知道DeadSystemException是:

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

除了说"那是系统,我们无能为力",我们可以做什么?

重新启动设备时,您无法运行应用程序。任何应用程序,不仅是您的应用程序,而且当设备重新启动时,任何给定的应用程序都无法运行。当您尝试在系统崩溃时尝试做某事时,会发生Afaik。这意味着如果系统崩溃并在重新启动时,您的应用程序启动了一项服务或执行某些操作,则会遇到该错误。

这意味着例外没有连接到您的应用程序,但是Android OS,您无能为力。

与启动服务有关的崩溃是因为这是您的应用程序崩溃时所做的。

so:错误是系统投掷的东西,因为您的应用程序在系统重新启动时做了某件事。您无能为力,因为您无法从应用程序中控制Android OS。

我遇到了同样的问题。我实施了使用Android传感器服务的服务。在某个时候,发生了两件事,但我仍然不知道哪一个造成了另一个。1(运行时重新启动2(Android Sensorserservice死亡。我已经实现了一个默认的未经手法处理程序,因为我在应用程序上调试了其他一些内容。我注意到这样的处理程序,至少有时会遇到这种例外。

我遵循本教程进行实施https://doandroid.wordpress.com/2011/11/19/writing-crash-reports-into-device-sd-card/

因此,假设您实现此处理程序,并且在系统死亡时实际上被称为,您可以在处理程序内添加某种验证,以便如果异常是DeadSystemexception,则可以设置一个警报来重新启动您的警报在说,5分钟之类的东西中应用。

这当然不是理想的解决方案,但是至少在您弄清楚系统到底发生了什么之前,至少可能是解决问题的方法。

有关如何通过编程应用程序重新启动应用的一些信息:强制应用第一次活动

您的应用程序由于Android OS系统而崩溃。这是参考。https://developer.android.com/reference/android/os/deadsystemexception核心Android系统已经死亡,并且正在通过运行时重新启动。所有运行的应用程序将立即被杀死。

最新更新