You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 12设备出现Resources$NotFoundException资源异常如何解决

核心异常根因

该崩溃发生在Android 12设备上Chromium内核启动阶段,org.chromium.ui.base.DeviceFormFactor.isTablet方法尝试读取系统内置整数资源config_smallestScreenWidthDp(对应报错的资源ID0x20c0025)时触发资源找不到异常。

排查思路
  • 检查App打包配置:确认是否开启了shrinkResources true资源收缩或者过度的资源混淆,导致系统资源引用被误裁剪
  • 核对Chromium/WebView版本:确认当前使用的Chromium自定义内核版本,或是崩溃设备上的系统WebView版本是否低于96,该版本以下未适配Android 12的资源解析逻辑
  • 排查设备ROM情况:确认崩溃是否集中在特定定制ROM的设备上,部分厂商定制ROM会裁剪系统内置的平板判断相关配置资源
  • 验证SDK适配版本:检查当前App的compileSdkVersion和targetSdkVersion是否低于31,低版本SDK编译的应用在Android12上读取系统资源可能出现适配问题
解决方案
  • 修复资源裁剪规则
    1. 在proguard-rules.pro中添加Chromium相关组件的混淆保护规则:
    -keep class org.chromium.** {*;}
    -keepclassmembers class * {
        @android.webkit.JavascriptInterface <methods>;
    }
    
    1. 若开启了资源收缩,在res/raw/keep.xml中添加规则保留相关系统资源:
    <?xml version="1.0" encoding="utf-8"?>
    <resources xmlns:tools="http://schemas.android.com/tools"
        tools:keep="@android:integer/config_smallestScreenWidthDp"/>
    
  • 升级内核版本:如果使用自定义Chromium内核,将版本升级至96及以上,官方已在该版本修复Android 12资源适配问题;如果使用系统WebView,可在App启动时检测WebView版本,低于要求时提示用户升级
  • 添加兜底逻辑:在WebView初始化逻辑外层添加try-catch捕获Resources$NotFoundException,捕获后使用自主实现的平板判断逻辑兜底:读取当前设备的smallestScreenWidthDp,若数值≥600则判定为平板,不需要调用Chromium内置的判断方法
  • 升级SDK适配版本:将App的compileSdkVersion和targetSdkVersion升级到31及以上,同时确保所有AndroidX依赖库版本与目标SDK版本匹配

内容的提问来源于stack exchange,提问作者Ashu Tyagi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 04:15:07