Android端Chrome WebView启动时ChromeColors相关资源报错崩溃问题
问题根因说明
这个异常是Android System WebView 94及以上版本更新后出现的已知兼容性问题,大量开发者都曾在WebView版本迭代周期内遇到同类崩溃。
从给出的报错栈可以直接定位触发原因:新版本WebView内核的渲染组件CompositorView依赖了Theme.MaterialComponents主题体系下的专属属性,若承载WebView的Activity或应用全局使用的主题未继承Theme.MaterialComponents及其子类,就会触发该属性缺失的异常。
修复方案
- 优先推荐方案:将应用全局主题,或单独为承载WebView的Activity指定的主题,父类修改为
Theme.MaterialComponents的子类,例如Theme.MaterialComponents.Light.NoActionBar,正常适配下不会影响原有业务的样式表现。 - 临时兼容方案:如果暂时不想调整全局主题父类,可以在当前使用的主题中补充WebView需要的核心属性配置即可:
<style name="YourAppTheme" parent="YourOriginalParentTheme"> <!-- 补充Material基础属性 --> <item name="colorPrimary">@color/你的主色值</item> <item name="colorPrimaryVariant">@color/你的主色深色变种值</item> <item name="colorOnPrimary">@color/主色上的文本色值</item> </style>
版本关联性确认
该崩溃确实是WebView版本更新直接导致的,对应2021年10月前后WebView 94稳定版正式推送后的集体报错,是Chromium内核侧修改主题依赖规则后,未兼容非Material主题应用导致的问题。
内容的提问来源于stack exchange,提问作者Diego Gómez Olvera
相关产品推荐
相关产品推荐

