IllegalStateException:Android WebView上的reasonPhrase不能为空

edw*_*ard 5 android webview chromium android-webview

最近,我注意到许多用户都收到此消息IllegalStateException,这导致应用程序崩溃。当WebView向用户显示a时会发生这种情况:

Fatal Exception: java.lang.IllegalArgumentException: reasonPhrase can't be empty.
       at android.webkit.WebResourceResponse.setStatusCodeAndReasonPhrase + 129(WebResourceResponse.java:129)
       at android.webkit.WebResourceResponse.(WebResourceResponse.java:70)
       at jY.a + 308(jY.java:308)
       at zn.handleMessage + 67(zn.java:67)
       at android.os.Handler.dispatchMessage + 102(Handler.java:102)
       at android.os.Looper.loop + 211(Looper.java:211)
       at android.app.ActivityThread.main + 5373(ActivityThread.java:5373)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke + 372(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 1020(ZygoteInit.java:1020)
       at com.android.internal.os.ZygoteInit.main + 815(ZygoteInit.java:815)
Run Code Online (Sandbox Code Playgroud)

并不是每个用户都会发生此崩溃。我曾尝试要求用户更新Chrome,以希望它更新Chromium,并要求他们安装最新版本的Android System WebView,但都没有给我带来任何成功。有谁遇到过这个问题,并且知道如何解决?我什至不能亲自复制它。

我还在这里找到了此错误日志:https : //bugs.chromium.org/p/chromium/issues/detail?id=925887

我还查看了源代码,可以看到相关的崩溃是由line 154以下原因引起的:https : //android.googlesource.com/platform/frameworks/base/+/master/core/java/android/webkit/WebResourceResponse .java

奇怪的是,应该只在发生错误时才发生这种情况,但是我可以WebView从屏幕截图中看到正确为用户加载的内容,然后应用立即崩溃。任何帮助将不胜感激!

abi*_*ode 6

当我使用来自 androidx.webkit 包的 Jetpack webkit 时,我也遇到了类似的问题。

使用WebViewClientCompatfromandroidx.webkit创建 webViewClient 导致上述异常,但回退到框架的WebViewClient工作。

webview.webViewClient = WebViewClient()

  • 但如何让它与 WebViewClientCompat 一起工作呢? (3认同)
  • 如此处所述,https://bugs.chromium.org/p/chromium/issues/detail?id=925887。它在 Webview 版本 73 中修复。您可以将上述方法添加为 catch 块中的后备。 (3认同)