[解決済み] エラー : BinderProxy@45d459c0 is not valid; activity is running?
2022-04-25 08:42:09
質問
このエラーは何ですか...私はstackoverflowコミュニティでこのエラーに関する議論を見つけたことがない 詳細:-)
10-18 23:53:11.613: ERROR/AndroidRuntime(3197): Uncaught handler: thread main exiting due to uncaught exception
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@45d459c0 is not valid; is your activity running?
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.view.ViewRoot.setView(ViewRoot.java:468)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.view.Window$LocalWindowManager.addView(Window.java:424)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.app.Dialog.show(Dialog.java:239)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at com.vishal.contacte.Locationlistener$MyLocationListener.onLocationChanged(Locationlistener.java:86)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:179)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:112)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.location.LocationManager$ListenerTransport$1.handleMessage(LocationManager.java:128)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.os.Handler.dispatchMessage(Handler.java:99)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.os.Looper.loop(Looper.java:123)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.app.ActivityThread.main(ActivityThread.java:4363)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at java.lang.reflect.Method.invokeNative(Native Method)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at java.lang.reflect.Method.invoke(Method.java:521)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at dalvik.system.NativeStart.main(Native Method)
解決方法は?
背景スレッドの実行後、アクティビティが破棄されるまでの間にダイアログを表示しようとしていることが原因である可能性が高いです。
ダイアログを呼び出すアクティビティが何らかの理由で終了したときに、ダイアログを表示しようとすると、私のいくつかのアプリからこのエラーが報告されるのを時々見ていました。 以下は、それを解決したものです。
if(!((Activity) context).isFinishing())
{
//show dialog
}
私は数年前から古いバージョンのAndroidでこの問題を回避するためにこれを使用しており、それ以来クラッシュを見たことがありません。
2021年版アップデート
いくつかのコメントで、やみくもにキャストするのは良くないと指摘されています。
Context
を
Activity
. 同感です!
最近、似たようなコードを書くときに
Fragment
(オリジナルの回答が提供されてから8年以上経過していますが)私はもっとこうしています。
if (!requireActivity().isFinishing) {
// show dialog
}
主なポイントは、ホスティングの後にダイアログを表示したり、UIを更新しようとすることです。
Activity
がkillされた場合、クラッシュが発生します。Activityがkillされたときにバックグラウンドのスレッドをkillするなど、できる限りの対策を行うか、最低限ここでの回答を参考に、アプリがクラッシュしないようにしましょう。
関連
-
aapt2エラー:ログを確認する(具体的な原因の探り方)
-
ActivityはOnFragmentInteractionListenerを実装しなければならないに関する質問
-
Android Nで報告されたエラーを解決する: android.os.FileUriExposedException: file:///storage/emulated/0/
-
エラータイプ 3 タイプエラー, Error: アクティビティクラス{}が存在しません。アクティビティ起動時のエラー 解決方法
-
Android TextViewにandroid:ellipsize=endのバグがある。
-
view.getRootView()の本当の意味とテストについて
-
アンドロイドスタジオ学習入門
-
Android studio 制約レイアウト ConstraintLayout
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] Androidのローテーションでアクティビティを再開する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
adb devices OffLine Solution(オフラインソリューション
-
java.lang.NullPointerException: NULLオブジェクト参照で仮想メソッド......を呼び出そうとしました。
-
android.os の NetworkOnMainThreadException。
-
Android Studio を 3.6.3 にアップデートした後、構成 :classpath のアーティファクトをすべて解決できない。
-
を作ってください。*** makeするルールがない エラーの原因、分析、解決策
-
IllegalStateException。ArrayAdapter は、リソース ID が TextView である必要があります。
-
指定された子にはすでに親がいます。まず、その子の親に対して removeView() をコールする必要があります。
-
Android カスタムスピナーコントロールのドロップダウン・ボックスの実装
-
Android Studioのgitの使用とgitの設定パス
-
[解決済み] Unable to add window -- android.os.BinderProxy is not valid; is your activity running?