1

私の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にバグを送信しましたが、それが問題かどうかはわかりません。

前もって感謝します。

4

1 に答える 1

0

Android マーケットでは、この問題について 1 週間に 360 件のレポートが届きます。

問題は、私の webview がその場で作成されていないことです。

私はウェブ上でこれを見つけました: https://code.google.com/p/android/issues/detail?id=11533

引き続き返信お待ちしております。

一部の電話モデルに関連しているようです。この問題を再現できますか? できたことはありません。

ありがとうラファ

于 2010-10-15T19:10:13.227 に答える