闪退?我给你一JIO!

1,956 阅读2分钟

记录安卓Chrome浏览器闪退解决方案

背景:Chrome浏览器闪退,尝试多个版本都不行,最后通过升级Android System WebView解决。

注意:不建议轻易尝试!

Android System WebView

Android System WebView 是一个系统组件,用于在 Android 应用程序中显示网页内容。它基于 Chromium 浏览器,允许应用在不需要全功能浏览器的情况下渲染和显示网页。

历经多个版本的演变

早期发展

Android 系统最初版本的 WebView 是基于 WebKit 浏览器引擎。WebKit 是一个开源的浏览器引擎,广泛用于早期的浏览器,如 SafariChrome 的早期版本。 WebView 的目标是让应用能嵌入和显示网页内容,同时保持与 Android 操作系统的紧密集成。

Chromium 集成

Android 4.4(KitKat)开始, WebView 组件逐步迁移到 Chromium 引擎。Chromium 是一个开源的浏览器项目,作为 Google Chrome 的基础,提供了更先进的网页渲染能力和更好的性能。 这种迁移带来了对现代网页技术的更好支持,比如 HTML5CSS3

独立更新

Android 5.0(Lollipop)开始, WebView 组件被拆分为独立的应用,可以通过 Google Play 商店进行单独更新。这使得 WebView 可以更频繁地更新,而不必依赖于系统更新。 用户和开发者可以更快速地获取最新的安全补丁和功能改进。

Chrome浏览器闪退

软件闪退,那是因为 WebView 太旧或国产手机厂商魔改不兼容国际APP导致。

更新

通过Play商店更新Android System Webview版本,更新后我的问题得到解决;设置-开发者选项-WebView实现 能看到版本号和切换。 一般来讲不建议自己手动更新,因为国内开发环境使用的安卓系统是定制版的,如果更新太勤,软件开发商没有对新版本做兼容优化,会有几率导致一些使用这个组件的软件闪退,不兼容。

不更新:国际APP可能闪退,更新:国内APP可能闪退

image.png

替换

部分国产手机厂商自己改了一个 WebView ,并改了包名,然后修改了系统去调用他们改过的那个 WebView ,而不用Google提供的 WebView 。所以在应用商店升级 WebView 没效果,系统根本不调用。 一般,厂商改过的 WebView 包名叫 com.android.webview ,而应用商店更新的叫 com.google.android.webview 。要用上更新的 WebView ,就必须让系统调用GoogleWebView ,而不是厂商自己改过的那个。

下面是解决方法,注意本人未亲自验证,仅猜测,请谨慎尝试: 通过Play商店或其他途经手动安装Android System Webview,安装或许需要root权限。安装成功后,通过设置-开发者选项-WebView实现切换刚刚安装的版本。

image.png

参考文献:

[1]www.bilibili.com/read/cv3312… [2]bbs.oneplus.com/thread/5020…