3

Android マーケットでアプリを公開しています。HTC と Samsung でテストしましたが、問題なく動作しています。しかし、今日、以下に示すアプリでエラーが発生しました。

android.view.WindowManager$BadTokenException
Source method 
ViewRoot.setView()

スタック トレースでは、

android.view.WindowManager$BadTokenException: Unable to add window -- token
android.os.BinderProxy@4059be38 is not valid; is your activity running?
at android.view.ViewRoot.setView(ViewRoot.java:532)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:200)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:114)
at android.view.Window$LocalWindowManager.addView(Window.java:424)
at android.app.Dialog.show(Dialog.java:241)
at android.app.AlertDialog$Builder.show(AlertDialog.java:810)
at com.newtglobal.android.Trace.serverBusy(Trace.java:1041)
at com.newtglobal.android.Trace.access$12(Trace.java:1013)
at com.newtglobal.android.Trace$13$1.run(Trace.java:975)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)

難読化されたコードを含むアプリケーションの場合、スタック トレースには難読化されたシンボル名が含まれます。アプリケーションが ProGuard を使用して難読化されている場合は、Android SDK Tools r8 以降に含まれている「retrace」ツールを使用してスタック トレースの難読化を解除できます。詳細については、ProGuard のドキュメントを参照してください。

何が問題ですか。このエラーを取り除く方法??? しかし、HTC と Samsung でテストしたところ、問題なく動作しています。

4

3 に答える 3

2

私のアプリでも非常によく似た問題が発生しています。いくつかの調査によると、AlertDialog (アプリケーション コンテキストではなく) を作成するときにアクティビティ コンテキストを使用していることを確認し、最上位の親アクティビティを使用していることを確認したいようです (詳しくは、この投稿に対する受け入れられた回答: https://stackoverflow.com/a/4011090/202870 )。

于 2012-02-08T17:31:10.743 に答える