众所周知,Webview可能会在某些情况下导致内存泄漏。所以我使用应用程序上下文来构建像SomeElement:hover {}
。
我需要全屏播放视频,因此我会覆盖new WebView(getApplicationContext())
。在测试少数设备后,每次按下全屏图标都会导致崩溃。
这是追踪:
WebChromeClient#onShowCustomView()
当我使用activity来构建webview时,它运行良好。
那么这些Android设备的区别是什么?
这是核心(android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:697)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:345)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224)
at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:149)
at android.view.Window$LocalWindowManager.addView(Window.java:554)
at android.widget.MediaController.show(MediaController.java:338)
at android.webkit.HTML5VideoFullScreen.showControllerInFullScreen(HTML5VideoFullScreen.java:387)
at android.webkit.HTML5VideoViewProxy$VideoPlayer.end(HTML5VideoViewProxy.java:310)
at android.webkit.HTML5VideoViewProxy.handleMessage(HTML5VideoViewProxy.java:450)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4898)
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:1006)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
at dalvik.system.NativeStart.main(Native Method)`
Chrome
)或Android版本的实现差异吗?
我该如何解决这个问题?
答案 0 :(得分:0)
如果您创建新活动并隐藏操作栏并在活动xml中添加WebView标记,则您不会再遇到此问题。你可以获得全屏模式。但这是android WebView中的一个错误,谷歌推出了更新来解决这个错误。