WebView视频全屏模式在某些Android设备中崩溃使用应用程序上下文时

时间:2016-07-09 10:24:38

标签: android video webview

众所周知,Webview可能会在某些情况下导致内存泄漏。所以我使用应用程序上下文来构建像SomeElement:hover {}

这样的webview

我需要全屏播放视频,因此我会覆盖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版本的实现差异吗? 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果您创建新活动并隐藏操作栏并在活动xml中添加WebView标记,则您不会再遇到此问题。你可以获得全屏模式。但这是android WebView中的一个错误,谷歌推出了更新来解决这个错误。