Android DeadSystemException


83

현재 DeadSystemExceptionHockeyApp 충돌보고에 문제가 있습니다. 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

1
코드를 게시하고 예외가 발생하는 코드 줄을 언급하십시오.
Aishwarya Tiwari

4
문서에서와 같이 앱의 문제가 아니라고 말할 수 있습니다. The core Android system has died and is going through a runtime restart. All running apps will be promptly killed.이것은 주로 다른 곳에서 발생하며 앱에 영향을 미칩니 까?
Yazan

2
@AishwaryaTiwari 로컬에서 버그를 재현 할 수 없으므로 코드를 게시 할 수 없습니다. 내가 가진 것은 HockeyApp의 스택 추적뿐입니다
convexHull

1
Android 프레임 워크에서 발생한 예외입니다. 도와 드릴 수 없어서 죄송합니다.
Aishwarya Tiwari

1
누구든지 충돌을 재현 할 수 있는지보고 싶습니다. 재현 단계에 현상금이 수여됩니다
David Rawson

답변:


70

에 대한 Android 개발자 문서 android.os.DeadSystemException는 다음과 같습니다.

핵심 Android 시스템이 종료되었으며 런타임이 다시 시작됩니다. 실행중인 모든 앱이 즉시 종료됩니다.

소스 코드는 훨씬 더 도움이되지 않습니다 :

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();
    }
}

전반적으로 이것은 OS에 의해 던져지는 것처럼 보이며 우리 코드와 관련이 없습니다.

수퍼 클래스의 javadoc을 살펴보면 DeadObjectException이 이론이 뒷받침됩니다.

호스팅 프로세스가 더 이상 존재하지 않기 때문에 호출중인 개체가 종료되었습니다.


앱이이 예외 중에 무언가를 시도했지만 OS가 중지했음을 의미합니까? 내 앱이이를 방지 할 수있는 방법이 있습니까?
안드로이드 개발자

내가 이해하는 것처럼 이것은 앱에서 수정할 수있는 것이 아닙니다.
Richard Le Mesurier 2019 년

14
그래서 우리가 할 수있는 것은 그냥 무시하는 것뿐입니까?
안드로이드 개발자

2
알림 관리자가 androidx로 정의 된 경우이 오류는 5 %입니다. android % 1로 정의되면. 이 오류는 확실히 알림 관리자 클래스 때문입니다. 하지만 아직 찾지 못했습니다.
Trk

1
@Trk 알림을 표시하려고 할 때 발생했습니다. 이 충돌을 어떻게 피할 수 있습니까? 잡아봐?
EricZhao

27

한 가지 원인은 Android 버전 7 및 8의 알림 서비스의 버그였습니다.

알림에서 "진동 패턴"을 사용하여 발생했으며 ArrayOutOfBoundsException. 이로 인해 전체 시스템이 충돌하고 DeadSystemException.

자세한 내용은 여기 에서이 매체 기사를 참조 하십시오 .


잠금보고를 통해 확인
Trk

13
나는 그것을 사지 않는다. App Center에이 예외에 대한 많은 보고서가 있으며 모두 Android 7 또는 8이 아닌 Android 10에 있습니다.
Justin

저스틴과 동의합니다. Android API 29를 실행하는 기기에서 이러한 문제가 많이 발생하는 것을 확인하고 알림 채널에서 진동 옵션을 사용하지 않습니다.
Hrafn

16
Fatal Exception: java.lang.RuntimeException: android.os.DeadSystemException

이 예외는 내가 개발중인 앱 중 하나에서 발생했으며 대부분 MI 장치에서 발생했습니다.

디버깅 후 백그라운드 스레드에서 현재 서비스 (Say A)의 다른 서비스 (Say B)를 시작하려고 시도했지만 startService(itService)메서드가 호출 되었을 때 서비스 A가 이미 종료되었음을 발견했습니다 .

지금까지 찾은 유일한 해결책은 다른 서비스 B를 시작하기 전에 현재 서비스 A가 실행 중인지 여부를 확인하는 것입니다. 구현에 따라 다양한 방법 중 하나를 사용 하여이 답변 에서 서비스가 실행 중인지 확인할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.