加载时Android Webview崩溃大约:空白,错误为“;net::错误“未知”URL“方案”;

加载时Android Webview崩溃大约:空白,错误为“;net::错误“未知”URL“方案”;,android,webview,Android,Webview,从google drive加载url时(这是一个27页的pdf文件),当加载“about:blank”并出现错误“net::ERR_UNKNOWN_url_SCHEME”时,webview会崩溃。当从google drive加载幻灯片时也会发生这种情况,然而,一个以“chrome extension”开头的url会崩溃。我们已经研究了很多事情,比如在网站的shouldOverrideUrlLoading函数中检查这些URL,返回true,从webview中删除自定义用户代理,但是这些似乎都不起作

从google drive加载url时(这是一个27页的pdf文件),当加载“about:blank”并出现错误“net::ERR_UNKNOWN_url_SCHEME”时,webview会崩溃。当从google drive加载幻灯片时也会发生这种情况,然而,一个以“chrome extension”开头的url会崩溃。我们已经研究了很多事情,比如在网站的shouldOverrideUrlLoading函数中检查这些URL,返回true,从webview中删除自定义用户代理,但是这些似乎都不起作用

随着想法的枯竭,我们决定看看在崩溃时重新加载网页是否有帮助,以及在大多数情况下是否有帮助。我附上了我们正在创建的webview的一些代码片段

wv = (WebView)result.findViewById(R.id.map_holder);
try
    {
        wv.setInitialScale(50);
        wv.getSettings().setJavaScriptEnabled(true);
        wv.getSettings().setSupportZoom(true);
        wv.getSettings().setUseWideViewPort(true);
        wv.getSettings().setBuiltInZoomControls(true);
        wv.setWebViewClient(new WebViewClient()
        {
            @Override
            public void onPageStarted (WebView view, String url, Bitmap favicon)
            {
                super.onPageStarted(view, url, favicon);
                loadingSpinner.setVisibility(View.VISIBLE);
            }

            @Override
            public void onPageFinished (WebView view, String url)
            {
                super.onPageFinished(view, url);
                loadingSpinner.setVisibility(View.GONE);
            }

            @Override
            public void onReceivedError (WebView view, WebResourceRequest request, WebResourceError error)
            {
                view.loadData(C.ErrorHtml, "text/html", null);
                if(attempts < maxAttempts)
                {
                    attempts++;
                    view.loadUrl(webAddress);
                }
            }

            @SuppressWarnings ("deprecation")
            @Override
            public void onReceivedError (WebView view, int errorCode, String description, String failingUrl)
            {
                view.loadData(C.ErrorHtml, "text/html", null);
                if(attempts < maxAttempts)
                {
                    attempts++;
                    view.loadUrl(webAddress);
                }
            }

            @Override
            public boolean shouldOverrideUrlLoading (WebView view, String url)
            {
                return overrideUrl(url) || super.shouldOverrideUrlLoading(view, url);
            }
        });

        wv.getSettings().setDomStorageEnabled(true);
        wv.getSettings().setDatabaseEnabled(true);
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
            wv.getSettings().setDatabasePath("/data/data/" + wv.getContext().getPackageName() + "/databases/");
        }

        wv.loadUrl(webAddress);
    }
    catch(Exception e)
    {
        Log.i(TAG, e.toString());
    }
}
wv=(WebView)result.findviewbyd(R.id.map\u holder);
尝试
{
wv.设定初始刻度(50);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setSupportZoom(true);
wv.getSettings().setUseWideViewPort(true);
wv.getSettings().SetBuilTinZoomControl(true);
wv.setWebViewClient(新的WebViewClient()
{
@凌驾
public void onPageStarted(WebView视图、字符串url、位图favicon)
{
super.onPageStarted(视图、url、favicon);
loadingSpinner.setVisibility(View.VISIBLE);
}
@凌驾
公共void onPageFinished(WebView视图,字符串url)
{
super.onPageFinished(视图、url);
loadingSpinner.setVisibility(View.GONE);
}
@凌驾
接收错误时公共无效(WebView视图、WebResourceRequest请求、WebResourceError错误)
{
view.loadData(C.ErrorHtml,“text/html”,null);
如果(尝试次数<最大尝试次数)
{
尝试++;
view.loadUrl(webAddress);
}
}
@抑制警告(“弃用”)
@凌驾
public void onReceivedError(WebView视图、int错误代码、字符串描述、字符串失败URL)
{
view.loadData(C.ErrorHtml,“text/html”,null);
如果(尝试次数<最大尝试次数)
{
尝试++;
view.loadUrl(webAddress);
}
}
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url)
{
返回overrideUrl(url)| | super.shouldOverrideUrlLoading(视图,url);
}
});
wv.getSettings().setDomStorageEnabled(true);
wv.getSettings().setDatabaseEnabled(true);
if(Build.VERSION.SDK_INT
任何帮助都将不胜感激!谢谢