【问题标题】:Android WebView is crashing while rendering content with latest update to v90.0.4430.82Android WebView 在呈现最新更新到 v90.0.4430.82 的内容时崩溃
【发布时间】:2021-04-22 10:24:33
【问题描述】:

WebView 更新 v90.0.4430.82

在 WebView 中渲染内容似乎有一些问题。加载很好,但在屏幕上显示不是。这似乎是随机的,但始终如一。一些 URL 的渲染很好,但其他的在渲染时会不断崩溃应用程序。

在此更新之前一切正常。 Iv 甚至从 Settings -> Apps -> Android System WebView 回滚更新(在旧设备上禁用 Chrome)并再次正常工作。似乎又出现了一个问题,就像我们在 2020 年 3 月看到的那样。

这是崩溃报告:

E/chromium: [ERROR:aw_browser_terminator.cc(123)] Renderer process (11930) crash detected (code 5).
A/chromium: [FATAL:crashpad_client_linux.cc(667)] Render process (11930)'s crash wasn't handled by all associated  webviews, triggering application crash.
A/libc: Fatal signal 5 (SIGTRAP), code -6 (SI_TKILL) in tid 10907 (oc.showcase.dev), pid 10907 (oc.showcase.dev)

【问题讨论】:

  • 我遇到了完全相同的问题,任何与 SCORM 相关的网页 (scorm.com/scorm-explained) 一开始就崩溃。您是否能够找到修复程序或解决方法?或者也许是来自 Google 的一些官方通讯?
  • @Yev Kanivets,刚刚添加了一个答案,希望对您有所帮助或从中获得一些解决问题的想法。

标签: android webview


【解决方案1】:

WebView 已更新至 90.0.4430.91,但可以肯定的是,直到以后的版本才会引入此修复(Beta 版和 Canary 尚未修复此问题,但会引入)。

WebView 以及整个应用程序崩溃的原因是由注入的 JavaScript 代码引起的。在 JavaScript 中将 iframe 替换为 document.write 解决了问题,但这不是一个长期的解决方案。 iframe 的问题在于它本身的 WebView。

另外,为了防止整个应用程序像这样崩溃,因为这种崩溃是在 WebView 中呈现内容时引起的,您应该在扩展 WebViewClientCustomWebViewClient 中覆盖 onRenderProcessGone。但是,同样,此解决方案将防止呈现问题和仅在 API 级别 26+ 时使整个应用程序崩溃。 API 26 下没有类似的东西,因此这个问题会导致整个应用崩溃,而不仅仅是 webView。

临时(以防万一)解决方案是检测 WebView 的版本代码,如果是错误的版本代码(v90.0.4430.82),根本不初始化 WebView,或者注入一些其他经过测试的 URL (HRML with JS) 不会导致崩溃。

您可以在此处找到错误单、描述和响应: https://bugs.chromium.org/p/chromium/issues/detail?id=1201228&q=component%3AMobile%3EWebView&can=2

【讨论】:

    猜你喜欢
    • 2020-07-30
    • 1970-01-01
    • 2011-10-30
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 2016-08-20
    • 1970-01-01
    相关资源
    最近更新 更多