2016-07-09 7 views
3

わかっているように、Webviewによってメモリリークが発生することがあります。だから私はnew WebView(getApplicationContext())のようなwebviewを構築するためにアプリケーションのコンテキストを使用します。WebViewビデオAndroidの一部でフルスクリーンモードがクラッシュするアプリケーションコンテキストを使用するとき

私はWebChromeClient#onShowCustomView()をオーバーライドするようにビデオをフルスクリーンにする必要があります。テストしたデバイス数が少なくなると、フルスクリーンのアイコンを押すたびにクラッシュする原因になります。

これはトレースです:

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)` 

私はWebViewのを構築するために活動を使用する場合それはうまく動作します。

これらのアンドロイドデバイスとの違いは何ですか?
コア(ChromeWebkit)またはアンドロイド版実装の違いが原因ですか?
どうすればこの問題を解決できますか?

答えて

0

新しいアクティビティを作成してアクションバーを非表示にし、アクティビティxmlにWebViewタグを追加すると、この問題はもう発生しません。フルスクリーンモードにすることもできます。しかし、これはアンドロイドWebViewのバグであり、Googleはこのバグを解決するためのアップデートを行っている。

関連する問題