5

我在我们的崩溃日志中看到这个错误仅来自 Android 6.0.1 设备,但不是特定于设备的。

Fatal Exception: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
       at android.view.ViewRootImpl.setView(ViewRootImpl.java:849)
       at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:337)
       at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
       at android.widget.PopupWindow.invokePopup(PopupWindow.java:1329)
       at android.widget.PopupWindow.showAtLocation(PopupWindow.java:1077)
       at android.widget.PopupWindow.showAtLocation(PopupWindow.java:1035)
       at com.android.internal.widget.FloatingToolbar$FloatingToolbarPopup.show(FloatingToolbar.java:563)
       at com.android.internal.widget.FloatingToolbar.show(FloatingToolbar.java:214)
       at com.android.internal.view.FloatingActionMode$FloatingToolbarVisibilityHelper.updateToolbarVisibility(FloatingActionMode.java:411)
       at com.android.internal.view.FloatingActionMode$1.run(FloatingActionMode.java:65)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:158)
       at android.app.ActivityThread.main(ActivityThread.java:7229)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

有谁知道这个问题的原因/解决方案?它似乎相对很少发生。

4

2 回答 2

3

仅在具有 Android 6.0.1 及更高版本的三星设备上存在相同的问题。能够重现它。

问题在于新的浮动操作模式(浮动工具栏)

当用户在屏幕上选择一些文本(出现浮动工具栏),转到上一个活动(关闭当前活动)然后,据我了解,android OS 正在尝试重新创建它(因为它不是正确关闭)使用已被销毁的活动对象。

解决方案是正确处理新的ActionMode,并在关闭活动之前将其关闭。

于 2016-08-14T19:38:24.140 回答
0

从活动 onPause 调用 webview.onPause 和从活动 onResume 调用 webview.onResume() 似乎也解决了这个问题。

于 2016-09-13T15:14:12.220 回答