首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提高UnsupportedOperationException的WebView.loadUrl

提高UnsupportedOperationException的WebView.loadUrl
EN

Stack Overflow用户
提问于 2021-09-03 17:00:39
回答 1查看 61关注 0票数 0

此异常仅在安卓5.1中引发(三星galaxy J3 2016)

日志:

代码语言:javascript
复制
Caused by java.lang.UnsupportedOperationException
    java.util.Collections$SingletonMap$1$1.remove (Collections.java:355)
    java.util.AbstractMap.remove (AbstractMap.java:397)
    org.chromium.android_webview.AwContents.loadUrl (AwContents.java:1594)
    org.chromium.android_webview.AwContents.loadUrl (AwContents.java:1458)
    com.android.webview.chromium.WebViewChromium.loadUrl (WebViewChromium.java:496)
    android.webkit.WebView.loadUrl (WebView.java:862)

我没有这个设备,我从我的crashlytics报告中收到了一大堆这样的异常。我的WebView设置如下:

代码语言:javascript
复制
settings.loadWithOverviewMode = true
settings.useWideViewPort = true
@SuppressLint("SetJavaScriptEnabled")
settings.javaScriptEnabled = true
settings.domStorageEnabled = true
webViewClient = WebViewClient()

我正在加载URL,并提供了额外的标头:

代码语言:javascript
复制
val extraHeaders = mapOf("Referer" to "https://my.site.url")
webView.loadUrl(state.url, extraHeaders)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-03 17:28:57

好了,我发现了一个问题:在loadUrl方法的AwContents源代码中,你可以找到这样的代码块:

代码语言:javascript
复制
    final String REFERER = "referer";
    Map<String, String> extraHeaders = params.getExtraHeaders();
    if (extraHeaders != null) {
        for (String header : extraHeaders.keySet()) {
            if (REFERER.equals(header.toLowerCase(Locale.US))) {
                params.setReferrer(new Referrer(extraHeaders.remove(header), 1));
                params.setExtraHeaders(extraHeaders);
                break;
            }
        }
    }

有趣的是extraHeaders.remove(header),因为我创建了不可变的映射,这导致抛出UnsupportedOperationException。

进行了以下更改:

代码语言:javascript
复制
val extraHeaders = mutableMapOf("Referer" to "https://my.site.url")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69048415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档