[解決済み] Androidでグローバルな未捕捉例外ハンドラを設定する理想的な方法
2023-03-29 16:50:43
質問
Androidアプリケーションのすべてのスレッドに対して、グローバルな未捕捉例外ハンドラを設定したいのです。そのため、私の
Application
サブクラスで
Thread.UncaughtExceptionHandler
をキャッチされない例外のデフォルトハンドラとして設定します。
Thread.setDefaultUncaughtExceptionHandler(
new DefaultExceptionHandler(this));
私の実装では、(1) のように
AlertDialog
に適切な例外メッセージを表示するようにしています。
しかし、これはうまくいかないようです。処理されないスレッドで例外がスローされると、常に OS デフォルトのダイアログ ("Sorry! -Application-has-stopped-unexpectedly dialog") が表示されます。
捕捉されない例外のデフォルト ハンドラを設定するための、正しく理想的な方法は何ですか?
どのように解決するのですか?
これだけでよいはずです。 (その後、必ずプロセスを停止させてください。)
最初に確認することは、Android ハンドラーがまだ呼び出されているかどうかです。 あなたのバージョンが呼び出されているが致命的に失敗し、system_server がプロセスのクラッシュを見たときに一般的なダイアログを表示している可能性があります。
ハンドラーのトップにいくつかのログメッセージを追加して、そこに到達しているかどうかを確認します。 getDefaultUncaughtExceptionHandler からの結果を出力し、それから捕捉されない例外を投げてクラッシュを引き起こします。 logcat の出力に注目して、何が起こっているのかを見てください。
関連
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み] Androidで'Context'を取得する静的な方法?
-
[解決済み] RecyclerView.Stateを使って、RecyclerViewのスクロール位置を保存するには?
-
[解決済み] Nexus 4でUSBデバッグモードを見つける方法とオンにする方法
-
[解決済み] AsyncTaskを複数回実行する
-
[解決済み] 複数のフィルタを持つBroadcastReceiverか、複数のBroadcastReceiverか?
-
[解決済み] AndroidでTextViewの下にアンダーラインを引くには
-
[解決済み] Gradleでビルドタイプを使用し、ContentProviderを使用する同じアプリを1つのデバイスで実行する。
-
[解決済み] TextView.setTextSizeの挙動がおかしい - テキストビューのテキストサイズを画面ごとに動的に設定する方法
-
[解決済み] アンドロイドボタンセレクター
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] RecyclerView.Stateを使って、RecyclerViewのスクロール位置を保存するには?
-
[解決済み] ArrayAdapter<myClass> の使用方法
-
[解決済み] Android Webview - キャッシュを完全に削除する
-
[解決済み] プログラム的に電話をかけるには?
-
[解決済み] Androidのソースコードにある@hideの意味とは?
-
[解決済み] AppCompat-v7 21でアクションバー/ツールバーにアイコンを表示する。
-
[解決済み] アプリ内課金テスト:android.test.purchased already owned
-
[解決済み] アンドロイドのdatepickerダイアログで最大の日付を設定するには?
-
[解決済み] TextView.setTextSizeの挙動がおかしい - テキストビューのテキストサイズを画面ごとに動的に設定する方法
-
[解決済み] Log4j2 のログレベルをプログラムで変更する