Android WebView 因最新的 Chrome 81.x 更新而崩溃,特别是在 Android 9.x 上
Posted
技术标签:
【中文标题】Android WebView 因最新的 Chrome 81.x 更新而崩溃,特别是在 Android 9.x 上【英文标题】:Android WebView crashing with latest Chrome 81.x update specially on Android 9.x 【发布时间】:2020-07-30 05:26:37 【问题描述】:最近几天,我们看到很多用户报告我们的应用(使用 webview)在他们的设备获得 Chrome v 81.x 更新后崩溃。
在 Play 商店崩溃报告中我看到以下消息:
pid: 0, tid: 0 >>> com.xxx.yyy
回溯: #00 pc 000000000237a354 /data/app/com.android.chrome-kyBxfoIez_ogh7zita-a1A==/base.apk(偏移量 0xc3b000)
如果用户恢复到旧版本的 chrome,它可以正常工作。有没有其他人经历过这个?我们最近没有进行任何更改,因此似乎仅与 Chrome 更新有关。 Chrome 版本更新在 Play 商店中不可见,因此我们无法测试,但我们从 apk 镜像中找到了 apk,并且能够在 android 9 模拟器上复制 使用 Google Play 服务 com.android.chrome_81.0.4044.111。 下面的堆栈跟踪
2020-04-17 00:10:47.429 14092-14092/com.xxx.yyyE/WebViewFactory: error instantiating provider
java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:265)
at android.webkit.WebView.getFactory(WebView.java:2681)
at android.webkit.WebView.ensureProviderCreated(WebView.java:2676)
at android.webkit.WebView.setOverScrollMode(WebView.java:2741)
at android.view.View.<init>(View.java:4807)
at android.view.View.<init>(View.java:4948)
at android.view.ViewGroup.<init>(ViewGroup.java:659)
at android.widget.AbsoluteLayout.<init>(AbsoluteLayout.java:55)
at android.webkit.WebView.<init>(WebView.java:659)
at android.webkit.WebView.<init>(WebView.java:626)
at com.xxx.yyy.ui.components.CustomWebView.<init>(CustomWebView.java:86)
at com.xxx.yyy.ui.components.CustomWebView.<init>(CustomWebView.java:80)
at com.xxx.yyy.ui.fragments.BaseWebViewFragment.createWebView(BaseWebViewFragment.java:171)
at com.xxx.yyy.ui.fragments.BaseWebViewFragment.init(BaseWebViewFragment.java:86)
at com.xxx.yyy.ui.fragments.TabletWebViewFragment.init(TabletWebViewFragment.java:36)
at com.xxx.yyy.ui.managers.TabletUIManager.addTab(TabletUIManager.java:250)
at com.xxx.yyy.ui.managers.BaseUIManager.addTab(BaseUIManager.java:209)
at com.xxx.yyy.ui.managers.BaseUIManager.onNewIntent(BaseUIManager.java:412)
at com.xxx.yyy.ui.activities.BrowserActivity.onCreate(BrowserActivity.java:423)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
任何帮助/指针将不胜感激。 谢谢
【问题讨论】:
你找到解决办法了吗? 我看到了同样的问题。但是我无法在模拟器上重现该问题。最新的chrome(81.0.4044.138)是否还会出现这个问题? 发生在我身上,虽然很少。 您好,我们发现问题与应用程序中的逻辑有关,我们在该应用程序中捕获网站缩略图以显示书签。一旦我们删除了该代码以使用网站图标,它就解决了这个问题。 Chrome 中的某些内容在导致此问题的最新版本 (81.0.4044.138) 中发生了更改。 【参考方案1】:我们发现该问题与我们捕获网站缩略图以显示书签的应用程序中的逻辑有关。一旦我们删除了该代码以使用网站图标,它就解决了这个问题。 Chrome 中的某些内容在导致此问题的最新版本 (81.0.4044.138) 中发生了更改。 – user899849 刚刚编辑删除
【讨论】:
感谢您提供的信息。你测试过 Chrome beta(83 版)吗?您可以在安装后在“开发者选项”的“Webview implementation”中选择 beta 版本。我在 Chromium 问题跟踪器上报告了一个类似的问题。但我无法重现该问题,也无法将崩溃 ID 提供给他们。 bugs.chromium.org/p/chromium/issues/detail?id=1081690如果还有问题,请告诉他们崩溃ID。以上是关于Android WebView 因最新的 Chrome 81.x 更新而崩溃,特别是在 Android 9.x 上的主要内容,如果未能解决你的问题,请参考以下文章