1

我的 Android 应用程序在运行过程中随机遇到此崩溃,我认为这是由于一个未决的 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);

这样做的原因是能够访问 WebView 的构造函数,以便将getApplicationContext()而不是this传递给构造函数,这是 2.1 中内存泄漏的一种解决方法。

我认为问题在于这个活动经常重启。这会导致 onStop()、onDestroy()、onCreate() 等的正常链经常发生。

所以我的问题是,崩溃可能是由于 MotionEvent 被分派到 MyWebView 的实例,该实例附加到已被垃圾收集的旧 Activity 吗?例如,如果用户在此活动被回收之前单击了 web 视图中的某些内容?

另一件需要注意的事情是我在调用 onDestroy() 后看到这些消息

/webviewglue(  436): nativeDestroy view: 0xd738d0

任何人可能有的任何帮助或见解,将不胜感激。一段时间以来,我一直在讨论这个问题。

哦,还有一件事要注意......这开始发生在 Android OS 2.2 中。我已经向 Google 提交了一个错误,但不确定这是他们的问题。

提前致谢。

4

1 回答 1

0

android 市场每周都会为我提供有关此问题的 360 度报告。

问题是我的 webview 甚至不是动态创建的。

我在网上找到了这个:https ://code.google.com/p/android/issues/detail?id=11533

仍在等待回复。

看起来它与某些手机型号有关。你能复制这个问题吗?我一直没办法。

谢谢拉法

于 2010-10-15T19:10:13.227 回答