わかっているように、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のを構築するために活動を使用する場合それはうまく動作します。
これらのアンドロイドデバイスとの違いは何ですか?
コア(Chrome
Webkit
)またはアンドロイド版実装の違いが原因ですか?
どうすればこの問題を解決できますか?