Android 12摩托罗拉设备WebView Resources$NotFoundException崩溃求助
Android 12摩托罗拉设备WebView崩溃:Resources$NotFoundException(资源ID#0x2100004)
近期在Crashlytics上监测到大量WebView相关崩溃,仅集中在运行Android 12系统的摩托罗拉设备。崩溃核心是android.content.res.Resources$NotFoundException,资源ID为#0x2100004,堆栈跟踪指向Chrome内核实现代码,现寻求开发者交流及缓解方案。
崩溃堆栈跟踪
Fatal Exception: android.content.res.Resources$NotFoundException: Resource ID #0x2100004 at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:233) at android.content.res.ResourcesImpl.openRawResource(ResourcesImpl.java:348) at android.content.res.Resources.openRawResource(Resources.java:1378) at android.content.res.Resources.openRawResource(Resources.java:1322) at WV.Tr.<init>(chromium-TrichromeWebViewGoogle.aab-stable-599311131:12) at WV.oC.<init>(chromium-TrichromeWebViewGoogle.aab-stable-599311131:18) at org.chromium.android_webview.AwBrowserProcess.g(chromium-TrichromeWebViewGoogle.aab-stable-599311131:91) at com.android.webview.chromium.M.e(chromium-TrichromeWebViewGoogle.aab-stable-599311131:208) at WV.SY.run(chromium-TrichromeWebViewGoogle.aab-stable-599311131:8) at android.os.Handler.handleCallback(Handler.java:978) at android.os.Handler.dispatchMessage(Handler.java:104) at android.os.Looper.loopOnce(Looper.java:238) at android.os.Looper.loop(Looper.java:357) at android.app.ActivityThread.main(ActivityThread.java:8090) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1026)
可能的缓解方案
- 强制WebView更新:该问题大概率是摩托罗拉定制系统搭配的旧版Chrome WebView存在资源缺失bug,引导用户在Google Play商店更新Android System WebView至最新版本,或在系统设置中手动更新WebView组件。
- 捕获WebView初始化异常:在WebView初始化代码外层添加全局异常捕获,避免崩溃扩散:
try { // WebView初始化相关代码 WebView webView = new WebView(context); // 其他配置逻辑 } catch (Resources.NotFoundException e) { // 降级处理:显示替代页面、提示用户更新WebView Log.e("WebViewCrash", "WebView初始化资源缺失", e); } - 检查应用资源配置:确认应用的
build.gradle中没有意外覆盖系统WebView所需的资源,避免resourcePrefix或资源混淆导致系统资源无法被WebView访问。 - 摩托罗拉机型适配:部分摩托罗拉Android 12机型存在系统资源裁剪问题,可尝试在
AndroidManifest.xml中添加tools:replace="android:theme",确保WebView能正确获取系统主题资源。
内容的提问来源于stack exchange,提问作者zezhou.zhou
相关产品推荐
相关产品推荐

