目前,我们的HockeyApp崩溃报告中出现了DeadSystemException。 它发生在Android 7.0和Android 7.1上。 我们在应用程序的先前版本中没有遇到此异常(当前它们都已被用户使用),因此我想这个异常是由一些代码更改引起的。 但是堆栈跟踪对此并没有帮助。 任何想法?
感谢您的任何建议。
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
请发布代码并提及发生异常的代码行。
我会说这不是您的应用程序问题,例如docs:The core Android system has died and is going through a runtime restart. All running apps will be promptly killed.这主要发生在其他地方并影响您的应用程序?
@AishwaryaTiwari我无法在本地重现该错误-因此我无法发布任何代码。我所拥有的只是HockeyApp的堆栈跟踪
这是Android框架抛出的异常,对不起,我无法帮助您。
@Yazan我也这么说。但是目前,我们在生产中有2个版本的应用程序(分别是1.1和1.2),并且崩溃报告(HockeyApp)相同,崩溃报告1.2 DeadSystemException中没有包含1.1 DeadSystemException ...
嘿,我从PackageManager调用getLaunchIntentForPackage()时遇到了同样的问题,用户说它崩溃了。
Ive合并了上面的评论,并在下面对社区Wiki回答的调查结果进行了合并-意味着任何人都可以随时添加更多信息,以获取更多信息。
@AishwaryaTiwari:仅在特定设备中不会发生异常,并且它不是随机异常
崩溃的统计数据如何,例如发生了多少次以及面临该问题的用户有多少?如果很少,我们可能会忽略它
我有兴趣查看是否有人能够重现崩溃。再现步骤将获得赏金
android.os.DeadSystemException的Android开发人员文档说以下内容:
The core Android system has died and is going through a runtime
restart. All running apps will be promptly killed.
源代码无济于事:
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();
}
}
总的来说,这似乎是由操作系统抛出的,与我们的代码无关。
从超类DeadObjectException中查看javadoc可以支持该理论:
The object you are calling has died, because its hosting process no
longer exists.
这是否意味着应用程序在此异常期间尝试执行某项操作,但操作系统停止了该操作? 我的应用程序可以做些什么来避免这种情况吗?
据我了解,这不是我们可以通过该应用程序解决的问题。
因此,我们唯一能做的就是忽略它?
当Notification Manager定义为androidx时,此错误为5%。 当定义为android%1时。 此错误绝对是由于我的Notification Manager类所致。 但是我仍然没有找到它。
原因之一是Android 7和8版本的通知服务中的错误。
这是由于在通知中使用"振动模式"引起的,并引发了ArrayOutOfBoundsException。这导致整个系统崩溃并发布DeadSystemException。
有关更多详细信息,您可以在此处参考此中型文章。
锁定报告可以确认您
Fatal Exception: java.lang.RuntimeException: android.os.DeadSystemException
此异常是在我正在开发的一个应用程序中引起的,它主要发生在MI设备中。
调试后,我发现我试图从后台线程启动当前服务(说A)中的另一个服务(说B),但是当调用startService(itService)方法时,服务A已被杀死。
到目前为止,我发现的唯一解决方案是在启动另一个服务B之前检查当前服务A是否正在运行。根据您的实现,您可以使用多种方式之一从此答案中检查服务是否正在运行。