Derzeit haben wir DeadSystemException
in unserer HockeyApp einen Absturzbericht. Es tritt unter Android 7.0 und Android 7.1 auf. Diese Ausnahme tritt in der vorherigen Version unserer Anwendung nicht auf (beide werden derzeit von Benutzern verwendet). Ich denke, diese Ausnahme wird durch einige Codeänderungen verursacht. Die Stapelverfolgung ist hierfür jedoch nicht sehr hilfreich. Irgendeine Idee? Vielen Dank für alle Vorschläge.
Stapelspur von 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
The core Android system has died and is going through a runtime restart. All running apps will be promptly killed.
Dies geschieht meistens woanders und wirkt sich auf Ihre App aus?Antworten:
In den Android Developer-Dokumenten
android.os.DeadSystemException
heißt es:Der Quellcode hilft nicht viel mehr:
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(); } }
Insgesamt sieht es so aus, als würde dies vom Betriebssystem ausgelöst und hat nichts mit unserem Code zu tun.
Ein Blick auf den Javadoc aus der Oberklasse
DeadObjectException
stützt diese Theorie:quelle
Eine Ursache war ein Fehler im Benachrichtigungsdienst von Android Version 7 und 8.
Es wurde durch die Verwendung von "Vibrationsmuster" in den Benachrichtigungen verursacht, die eine
ArrayOutOfBoundsException
. Dies führt dazu, dass das gesamte System abstürzt und aDeadSystemException
.Weitere Informationen finden Sie in diesem Medium-Artikel hier .
quelle
Fatal Exception: java.lang.RuntimeException: android.os.DeadSystemException
Diese Ausnahme wurde in einer der von mir entwickelten Apps verursacht. Sie trat hauptsächlich bei MI-Geräten auf.
Nach dem Debuggen stellte ich fest, dass ich versuchte, einen anderen Dienst (Say B) im aktuellen Dienst (Say A) über einen Hintergrundthread zu starten, aber als die
startService(itService)
Methode aufgerufen wurde, wurde der Dienst A bereits beendet.Die einzige Lösung, die ich bisher gefunden habe, besteht darin, zu überprüfen, ob der aktuelle Dienst A ausgeführt wird oder nicht, bevor Sie einen anderen Dienst B starten. Abhängig von Ihrer Implementierung können Sie anhand dieser Antwort auf verschiedene Arten überprüfen, ob ein Dienst ausgeführt wird .
quelle