IllegalStateException:Android WebView上的reasonPhrase不能为空

时间:2019-08-08 14:06:39

标签: android webview android-webview chromium

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

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)

并非每个用户都会发生此崩溃。我曾尝试要求用户更新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从屏幕截图中正确地为用户加载,然后应用立即崩溃。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

当我遇到同样的问题时 我使用了Jetpack Webkit, 来自androidx.webkit包。

使用WebViewClientCompat中的androidx.webkit创建webViewClient导致上述异常, 但退回到框架的WebViewClient起作用了。

webview.webViewClient = WebViewClient()