2010-10-01 85 views
1

我的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提交了一个错误,但不确定这是他们的问题。

在此先感谢。

回答

0

安卓市场每周给我360个关于这个问题的报道。

问题是,我的webview甚至不是即时创建的。

我发现这个网站:https://code.google.com/p/android/issues/detail?id=11533

仍在等待答复。

它看起来像它与某些手机型号有关。你能否复制这个问题?我从来没有能力。

谢谢 rafa