Actualmente, estamos experimentando un DeadSystemException
error en nuestro informe de fallas de HockeyApp. Ocurre en Android 7.0 y Android 7.1. No experimentamos esta excepción en la versión anterior de nuestra aplicación (actualmente los usuarios las usan), así que supongo que esta excepción se debe a algún cambio de código. Pero el seguimiento de la pila no es muy útil para esto. ¿Alguna idea? Gracias por cualquier sugerencia.
Seguimiento de pila de 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.
esto ocurre principalmente en otro lugar y afecta su aplicación?Respuestas:
Los documentos para desarrolladores de Android
android.os.DeadSystemException
dicen lo siguiente:El código fuente no ayuda mucho más:
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(); } }
En general, parece que esto lo está lanzando el sistema operativo y no tiene nada que ver con nuestro código.
Mirando el javadoc de la superclase
DeadObjectException
, respalda esta teoría:fuente
Una de las causas fue un error en el servicio de notificación de las versiones 7 y 8 de Android.
Fue causado por el uso de "patrón de vibración" en las notificaciones, que arroja un
ArrayOutOfBoundsException
. Esto hace que todo el sistema se bloquee y publique un archivoDeadSystemException
.Para obtener más detalles, puede consultar este artículo de Medium aquí .
fuente
Fatal Exception: java.lang.RuntimeException: android.os.DeadSystemException
Esta excepción se produjo en una de las aplicaciones que estaba desarrollando, se produjo principalmente en dispositivos MI.
Después de la depuración, descubrí que estaba intentando iniciar otro servicio (Diga B) en el servicio actual (Diga A) desde un hilo en segundo plano, pero cuando
startService(itService)
se llamó al método, el servicio A ya se había eliminado.La única solución que encontré hasta ahora es verificar si el servicio actual A se está ejecutando o no antes de iniciar otro servicio B. Dependiendo de su implementación, puede usar una de las diversas formas de verificar si un servicio se está ejecutando desde esta respuesta .
fuente