TimeoutException:WebViewClassic.finalize()在10秒后超时

时间:2015-10-15 07:50:32

标签: java android webview timeoutexception

我使用的是Android WebView,它是根据计时器动态添加和删除的。我注意到由以下异常引起的一些崩溃。

java.util.concurrent.TimeoutException: android.webkit.WebViewClassic.finalize() timed out after 10 seconds
    at android.os.MessageQueue.enqueueMessage(MessageQueue.java:318)
    at android.os.Handler.enqueueMessage(Handler.java:626)
    at android.os.Handler.sendMessageAtFrontOfQueue(Handler.java:618)
    at android.webkit.WebViewCore$EventHub.sendMessageAtFrontOfQueue(WebViewCore.java:1873)
    at android.webkit.WebViewCore$EventHub.access$7200(WebViewCore.java:1063)
    at android.webkit.WebViewCore.destroy(WebViewCore.java:1987)
    at android.webkit.WebViewClassic.destroyJava(WebViewClassic.java:2208)
    at android.webkit.WebViewClassic.destroy(WebViewClassic.java:2183)
    at android.webkit.WebViewClassic.finalize(WebViewClassic.java:4266)
    at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:187)
    at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:170)
    at java.lang.Thread.run(Thread.java:841)

我找不到这个问题的根源。我尝试禁用硬件加速,但没有用。

view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

我创建WebView的代码如下所示。

public static void setupWebView(WebView view, String url) {
     view.loadUrl(url);

     view.setLayerType(View.LAYER_TYPE_SOFTWARE, null); // Did not fix TimeoutException

     view.getSettings().setLoadWithOverviewMode(true);
     view.getSettings().setUseWideViewPort(true);
     view.getSettings().setJavaScriptEnabled(true);
     view.getSettings().setDomStorageEnabled(true);
     view.getSettings().setSaveFormData(false);

     // Make the web view handle links on visited pages
     view.setWebViewClient(new WebViewClient() {
         @Override
         public boolean shouldOverrideUrlLoading(WebView view, String url) {
             view.loadUrl(url);
             return true;
         }
     });
 }

我只是通过在父视图上调用parent.removeView(webView)来删除视图。

任何可能导致我解决这个问题的想法?

系统在Android设备上运行> = 4.2.2。

0 个答案:

没有答案