我的Android應用程序在運行過程中隨機出現此故障,我認爲這是由於掛起的MotionEvent被分派到空對象,但不確定。如何解決由於掛起MotionEvent導致的Android WebView崩潰
這裏是崩潰輸出:
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,並把它添加到的ViewGroup在Activity.onCreate()方法是這樣的:
ViewGroup groupA = (ViewGroup)findViewById(R.id.frame_layout_rowA);
webViewRowA = new MyWebView(this);
groupA.addView(webViewRowA);
的這樣做的理由是能夠到達WebView的構造函數,以便將getApplicationContext()而不是這個傳遞給構造函數,這是一個工作區在2.1中發生內存泄漏。
我認爲問題在於此活動經常重新啓動。這導致onStop(),onDestroy(),onCreate()等常規鏈經常發生。
所以我的問題是,崩潰可能是由於一個MotionEvent被調度到MyWebView的一個實例,該實例已附加到已被垃圾收集的舊Activity上?比如用戶在這個活動被回收之前在webview中點擊了什麼?
另一個要注意的是我看到這些消息之後到的onDestroy()的調用
/webviewglue( 436): nativeDestroy view: 0xd738d0
任何幫助或洞察力的人可能有,將不勝感激。我一直在這個問題上已經有一段時間了。
哦,還有一件事要注意....這開始發生在Android OS 2.2中。我向Google提交了一個錯誤,但不確定這是他們的問題。
在此先感謝。