android.view.WindowManager $ BadTokenException仅适用于亚马逊商店中的Kindle Fire平板电脑

时间:2014-02-19 18:29:38

标签: android amazon kindle-fire android-windowmanager amazon-appstore

我在 Amazon App Store 中报告了以下stacktrace。分析它有三个主要问题:

  1. 我永远无法重现它,因为似乎与之相关 Kindle Fire平板电脑,我没有一个
  2. 我可用的堆栈跟踪不包含 我的应用程序包,所以很难找出我的代码中的哪一行 导致实际
  3. 仅偶尔发生 ,约占95% 亚马逊Kindle火灾会议似乎没有任何问题
  4. 亚马逊开发者报告提供的堆栈跟踪(这是我从他们那里得到的......)

    android.view.WindowManager$BadTokenException
        at android.view.ViewRootImpl.setView(ViewRootImpl.java:525)
        at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:301)
        at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215)
        at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:140)
        at android.app.Dialog.show(Dialog.java:295)
        at android.webkit.WebView$ActionPopupWindow.onClick(WebView.java:5867)
        at android.view.View.performClick(View.java:3540)
        at android.view.View$PerformClick.run(View.java:14167)
        at android.os.Handler.handleCallback(Handler.java:605)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4558)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
        at dalvik.system.NativeStart.main(Native Method)
    

    有关其发生的设备的其他信息:(根据Google Analytics应用跟踪)

    1. 设备:Kindle Fire HD 7,Kindle Fire HD 8.9
    2. 操作系统:“亚马逊”android 4.0.3& 4.0.4
    3. 到目前为止,我对堆栈跟踪的解释是我的应用程序中的Dialog出现了问题,但是在Kindle Fire之外的其他设备上它是如此奇怪(包括Froyo和Gingerbread设备!)。 WebView的界限让我感到困惑,因为我没有随处可见的webview ..

      还有一些关于BadTokenException的问题,但是我研究过的,解决方案似乎不适合我的情况。例如this question,但我不在应用程序中做多线程的事情,所以不应该对我有用。也许我错过了那里的东西?

      你知道造成这种情况的原因是什么吗?因为它很少发生,只有Kindles对我来说不是一个大问题,但我想了解发生了什么。

      编辑:另一个嫌疑人是Admob广告,这可以解释偶尔发生的事件(有时可能出现某种不友好的广告?)

1 个答案:

答案 0 :(得分:0)

你是对的,这是关于对话本身的例外。 我找到了一些链接。希望它适合你。

http://www.jjoe64.com/2011/06/how-to-fix-windowmanager.html
http://stackoverflow.com/questions/1561803/android-progressdialog-show-crashes-with-getapplicationcontext
http://stackoverflow.com/questions/22034495/window-manager-bad-token-exception-android

原因是总和时间对话框无法注意到其父活动是否已完成。最重要的观察是它是罕见且不确定的问题。