我在Amazon App Store中报告了以下堆栈跟踪。我在分析它时遇到了三个主要问题:
- 我永远无法重现它,因为它似乎只发生在 Kindle Fire 平板电脑上,而我没有
- 我可用的堆栈跟踪不包含 我的应用程序包,因此很难弄清楚我的代码中的哪一行实际上导致了
- 它只是偶尔发生,大约 95% 的 Amazon Kindle fire 会话似乎没有任何问题
Amazon Developer Reporting 提供的堆栈跟踪(这就是我从他们那里得到的全部......)
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)
关于它发生的设备的附加信息:(根据谷歌分析应用跟踪)
- 设备:Kindle Fire HD 7、Kindle Fire HD 8.9
- 操作系统:“亚马逊”安卓 4.0.3 & 4.0.4
到目前为止,我对堆栈跟踪的解释是,我的应用程序中的 Dialog 出现了问题,但奇怪的是,在 Kindle Fire 以外的其他设备上它都可以正常工作(包括 Froyo 和 Gingerbread 设备!)。与 WebView 的行让我感到困惑,因为我在任何地方都没有包含 webview..
已经有一些关于 BadTokenException 的其他问题,但我研究过,解决方案似乎不适合我的情况。例如这个问题,但我不在应用程序中做多线程的事情,所以也不应该为我工作。也许我错过了那里的东西?
你知道这可能是什么原因吗?因为它很少发生,而且只有 Kindle,所以对我来说这不是一个大问题,但我想了解发生了什么。
编辑:另一个嫌疑人是 Admob 广告,这可以解释偶尔发生的情况(也许有时会出现某种对 Kindle 不友好的广告?)