【问题标题】:android.view.WindowManager$BadTokenException only with Kindle Fire Tablets in Amazon Storeandroid.view.WindowManager$BadTokenException 仅适用于亚马逊商店中的 Kindle Fire 平板电脑
【发布时间】:2014-03-20 07:10:09
【问题描述】:

我在 Amazon App Store 中报告了以下堆栈跟踪。我在分析它时遇到了三个主要问题:

  1. 我永远无法重现它,因为它似乎发生在 Kindle Fire 平板电脑,我没有
  2. 我可用的堆栈跟踪不包含 我的应用程序包,所以很难弄清楚我的代码中的哪一行 原因实际上是
  3. 只是偶尔发生,大约 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)

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

  1. 设备:Kindle Fire HD 7、Kindle Fire HD 8.9
  2. 操作系统:“亚马逊”安卓 4.0.3 和 4.0.4

到目前为止,我对堆栈跟踪的解释是,我的应用程序中的 Dialog 出现了问题,但奇怪的是,在 Kindle Fire 以外的其他设备上它都可以正常工作(包括 Froyo 和 Gingerbread 设备!)。与 WebView 的行让我感到困惑,因为我在任何地方都没有包含 webview..

已经有一些关于 BadTokenException 的其他问题,但是根据我的研究,解决方案似乎不适合我的情况。例如this question,但我不在应用程序中做多线程的事情,所以也不应该为我工作。也许我错过了什么?

您知道造成这种情况的原因是什么吗?由于它很少发生而且只有 Kindle 对我来说不是什么大问题,但我想了解发生了什么。

编辑:另一个嫌疑人是 Admob 广告,这可以解释偶尔发生的情况(也许有时会出现某种对 kindle 不友好的广告?)

【问题讨论】:

  • 应用中有广告API吗?可能会在触发问题的 web 视图中滚动?
  • @Offbeatmammal 是的,我愿意!可能是这样,我将进一步研究广告 API。谢谢!

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


【解决方案1】:

你是对的,这是对话框本身的例外。 我找到了几个链接。希望它对你有用。

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

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

【讨论】:

  • 考虑到我刚刚看到 Kindle 似乎处理屏幕方向的变化与“普通”android 设备 captechconsulting.com/blog/clinton-teegarden/… 略有不同,这看起来像是一个很好的跟踪,因为我的应用程序在清单文件。如果亚马逊Kindles将屏幕倒置,尽管它固定为纵向,也许它会旋转180º?如果固定为纵向,Google android 设备将不会这样做。
  • 虽然我还不能证实这是原因,但它至少是一个热点。而且由于似乎没有其他人(包括我)有更好的答案,所以你应该得到赏金;-) 不过,我会通过一些调整来更新我的应用程序,如果偶尔的 kindle 崩溃仍然存在,我会通知你。谢谢。
  • 当然,我也会继续努力,一有更完善的解决方案就会通知你。
猜你喜欢
  • 2012-02-11
  • 2015-04-02
  • 1970-01-01
  • 1970-01-01
  • 2022-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-24
相关资源
最近更新 更多