目前,我们在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
答案 0 :(得分:51)
Google Mobile Ads Unity plugin的Android开发人员文档说明如下:
核心Android系统已经死亡,正在经历运行时 重新开始。所有正在运行的应用程序都会被迅速杀死。
android.os.DeadSystemException
无济于事:
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,支持这个理论:
您呼叫的对象已经死亡,因为它的托管过程没有 存在的时间越长。
答案 1 :(得分:10)
var winSize = document.getElementById("size");
var mouseCoords = document.getElementById("coords");
window.addEventListener("click", getCoords);
function getCoords(e)
{
var windowWidth = window.innerWidth;
var windowHeight = window.innerHeight;
winSize.innerHTML = windowWidth + ":" + windowHeight;
var xPosition = e.clientX;
var yPosition = e.clientY;
mouseCoords.innerHTML = xPosition + ":" + yPosition;
}
此异常是由我正在开发的其中一个应用程序引起的,主要发生在MI设备中。
调试后我发现我正在尝试从后台线程启动当前服务(Say A)中的另一个服务(Say B),但是当调用Fatal Exception: java.lang.RuntimeException: android.os.DeadSystemException
方法时,服务A已经被杀死。 / p>
我发现的唯一解决方案是在启动另一个服务B之前检查当前服务A是否正在运行。根据您的实现,您可以使用各种方法之一来检查服务是否正在运行{ {3}}
答案 2 :(得分:6)
一个原因是Android 7和8版本的通知服务中存在错误。
这是由于在通知中使用“振动模式”引起的,并引发了ArrayOutOfBoundsException
。这会导致整个系统崩溃并发布DeadSystemException
。
有关更多详细信息,请参阅此中型文章here。
答案 3 :(得分:0)
另一个例子:
try {
ActivityManager.getMyMemoryState(mAppProcessInfo);
} catch (Exception exception) {
exception.printStackTrace();
return;
}