Android WebView 在呈现最新更新到 v90.0.4430.82 的内容时崩溃
Android WebView is crashing while rendering content with latest update to v90.0.4430.82
WebView更新v90.0.4430.82
在 WebView 中呈现内容似乎有一些问题。加载很好,但在屏幕上显示不是。看起来这是随机的,但却是一致的。一些 URL`s 渲染良好,但其他一些在渲染时不断崩溃应用程序。
在此更新之前一切正常。
我什至从设置 -> 应用程序 -> Android 系统 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)
WebView 已更新至 90.0.4430.91,但可以肯定的是,此修复将在以后的版本中引入(Beta 和 Canary 尚未修复此问题,但会引入)。
WebView 和整个应用程序崩溃的原因是由注入的 JavaScript 代码引起的。在 JavaScript 中用 document.write
替换 iframe
解决了问题,但这不是长期解决方案。 iframe
的问题出在 WebView 本身。
此外,为了防止像这样崩溃整个应用程序,因为这种崩溃是在 WebView 中呈现内容时引起的,您应该覆盖扩展 [=15] 的 CustomWebViewClient
中的 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
WebView更新v90.0.4430.82
在 WebView 中呈现内容似乎有一些问题。加载很好,但在屏幕上显示不是。看起来这是随机的,但却是一致的。一些 URL`s 渲染良好,但其他一些在渲染时不断崩溃应用程序。
在此更新之前一切正常。 我什至从设置 -> 应用程序 -> Android 系统 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)
WebView 已更新至 90.0.4430.91,但可以肯定的是,此修复将在以后的版本中引入(Beta 和 Canary 尚未修复此问题,但会引入)。
WebView 和整个应用程序崩溃的原因是由注入的 JavaScript 代码引起的。在 JavaScript 中用 document.write
替换 iframe
解决了问题,但这不是长期解决方案。 iframe
的问题出在 WebView 本身。
此外,为了防止像这样崩溃整个应用程序,因为这种崩溃是在 WebView 中呈现内容时引起的,您应该覆盖扩展 [=15] 的 CustomWebViewClient
中的 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