我最近注意到许多用户收到此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
从屏幕截图中正确地为用户加载,然后应用立即崩溃。任何帮助将不胜感激!
答案 0 :(得分:2)
当我遇到同样的问题时 我使用了Jetpack Webkit, 来自androidx.webkit包。
使用WebViewClientCompat
中的androidx.webkit
创建webViewClient导致上述异常,
但退回到框架的WebViewClient
起作用了。
webview.webViewClient = WebViewClient()