gpt4 book ai didi

android - 如何找出导致 BadTokenException 的原因

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:16:08 27 4
gpt4 key购买 nike

我正在开发一个包含多个 Activity 和服务的 Android 应用程序。一些 Activity 是在我导入到我的项目中的第 3 方库中定义的,问题是在某些设备上(特别是在三星 Galaxy Tabs 中)我的应用程序在通过点击背面从一个 Activity 切换到前一个 Activity 时不断崩溃按钮。

我做了一个 LogCat,发现这是崩溃的原因:

android.view.WindowManager$BadTokenException: Unable to add window -- token
android.os.BinderProxy@351c808e is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:562)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:272)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3017)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

但有趣的是,我的应用程序的所有类都没有出现在堆栈跟踪中。我在 StackOverflow 上搜索了类似的问题,但我发现所有其他报告都有 BadTokenException 的堆栈跟踪,相应应用程序的代码总是出现在堆栈跟踪中。

有谁知道这个问题的常见原因和/或解决问题的最佳方法是什么?我注意到这个问题在三星设备上发生得更多,所以这可能是这些设备上的一个实际错误。

最佳答案

通常 BadTokenExceptions 当您的 Activity 在其 onAttachToWindow() 方法被调用之前(或在其 onDetachFromWindow() 方法被调用)。很可能是您使用的第三方库有问题,无法确保满足此要求。

关于android - 如何找出导致 BadTokenException 的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27334384/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com