Android DeadSystemException


83

現在、DeadSystemExceptionHockeyAppのクラッシュレポートでが発生しています。Android7.0およびAndroid7.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 2017年

4
ドキュメントのように、The core Android system has died and is going through a runtime restart. All running apps will be promptly killed.これはアプリの問題ではないと思います。これは主に別の場所で発生し、アプリに影響しますか?
Yazan 2017年

2
@AishwaryaTiwariバグをローカルで再現できないため、コードを投稿できません。私が持っているすべてはHockeyAppからスタックトレースです
凸包

1
これはAndroidフレームワークによってスローされる例外です。申し訳ありませんが、これについてはサポートできません。
Aishwarya Tiwari 2017年

1
誰かがクラッシュを再現できたかどうかを確認したいと思います。再現のステップには賞金が授与されます
DavidRawson19年

回答:


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がそれを停止したことを意味しますか?私のアプリがそれを回避するためにできることはありますか?
Androidデベロッパー

私が理解しているように、これはアプリから修正できるものではありません。
リチャードルメスリエ

13
だから私たちにできることはそれを無視することだけですか?
Androidの開発者

2
Notification Managerがandroidxとして定義されている場合、このエラーは5%です。androidとして定義されている場合%1はです。このエラーは間違いなく私にとってのNotificationManagerクラスが原因です。しかし、私はまだそれを見つけていません。
のTrk

1
@Trk通知を表示しようとしたときに発生したことがわかりました。このクラッシュを回避するにはどうすればよいですか?キャッチしてみませんか?
EricZhao

27

原因の1つは、Androidバージョン7および8の通知サービスのバグでした。

これは、通知で「バイブレーションパターン」を使用していることが原因で、がスローされますArrayOutOfBoundsException。これにより、システム全体がクラッシュして投稿されますDeadSystemException

詳細については、こちらのMediumの記事を参照してください


ロックアウトあなたの確認を報告する
のTrk

13
私はそれを買わない。7または8 Androidのではない、私は、Appセンターでは、この例外の多くのレポートを見て、すべてがAndroidの10である
ジャスティン・

Justinに同意します。これらの問題の多くは、Android API 29を実行しているデバイスで発生し、通知チャネルでバイブレーションオプションを使用していません。
Hrafn

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

この例外は、私が開発していたアプリの1つで発生し、主にMIデバイスで発生しました。

デバッグ後、バックグラウンドスレッドから現在のサービス(Say A)で別のサービス(Say B)を開始しようとしていることがわかりましたが、startService(itService)メソッドが呼び出されたとき、サービスAはすでに強制終了されていました。

これまでに見つけた唯一の解決策は、別のサービスBを開始する前に、現在のサービスAが実行されているかどうかを確認することです。実装に応じて、さまざまな方法のいずれかを使用して、この回答からサービスが実行されているかどうかを確認できます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.