私のAndroidアプリでは、操作中にランダムにこのクラッシュが発生しています。これは、nullオブジェクトにディスパッチされる保留中のMotionEventが原因だと思いますが、確かではありません。
クラッシュ出力は次のとおりです。
java.lang.NullPointerException
at android.webkit.BrowserFrame.getRequestInterceptor(BrowserFrame.java:1108)
at android.webkit.FrameLoader.handleRequestIntercept(FrameLoader.java:426)
at android.webkit.FrameLoader.handleHTTPLoad(FrameLoader.java:226)
at android.webkit.WebViewWorker.handleMessage(WebViewWorker.java:124)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.os.HandlerThread.run(HandlerThread.java:60)
私のAndroidアプリは、カスタムWebViewを手動で作成し、次のようにActivity.onCreate()メソッドのViewGroupに追加します。
ViewGroup groupA = (ViewGroup)findViewById(R.id.frame_layout_rowA);
webViewRowA = new MyWebView(this);
groupA.addView(webViewRowA);
このようにする理由は、これの代わりにgetApplicationContext()をコンストラクターに渡すためにWebViewのコンストラクターにアクセスできるようにするためでした。これは、2.1でのメモリリークの回避策でした。
問題は、このアクティビティが頻繁に再開されることだと思います。これにより、onStop()、onDestroy()、onCreate()などの通常のチェーンが頻繁に発生します。
だから私の質問は、クラッシュは、ガベージコレクションされた古いアクティビティにアタッチされたMyWebViewのインスタンスにMotionEventがディスパッチされたことが原因である可能性がありますか?このアクティビティがリサイクルされる直前に、ユーザーがWebビューで何かをクリックした場合など。
もう1つ注意すべき点は、onDestroy()を呼び出した後にこれらのメッセージが表示されることです。
/webviewglue( 436): nativeDestroy view: 0xd738d0
誰かが持っているかもしれないどんな助けや洞察も、大いにありがたいです。私はしばらくの間、この問題にぶつかっています。
ああ、もう1つ注意すべき点があります。これは、AndroidOS2.2で発生し始めました。Googleにバグを送信しましたが、それが問題かどうかはわかりません。
前もって感謝します。