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

Android 8.1 Nexus 5X偶发Resources$NotFoundException资源加载失败问题求助

根因排查方向

1. 同资源名多格式多目录冲突

你当前为button_close_grey_24dp配置了两份同名不同格式、不同目录的资源:

  • drawable目录下的png文件
  • drawable-nodpi目录下的矢量xml文件
    Android系统加载资源时,会按照设备density匹配最优资源,nodpi是不受密度影响的通用资源,优先级高于无qualifier的drawable目录,系统会优先尝试加载nodpi下的矢量xml,不会降级加载png,你之前认为的“矢量图有问题就会加载png”的逻辑不成立。

2. Android 8.1 矢量图加载已知BUG

Nexus 5X搭载的Android 8.1存在系统级的矢量图加载异常场景:当矢量图放在drawable-nodpi目录、且在selector中被引用时,部分场景下系统解析资源ID会出现偏移,就是你日志里出现的找不到0x7f08006e这个ID的问题,这个BUG仅在特定系统镜像、特定资源配置组合下触发,所以只有单个用户报错。

3. App Bundle 分拆下发异常

如果你用了App Bundle打包分发,Google Play会根据设备属性下发对应资源拆分包,如果用户设备的资源拆分包下载异常、或者安装时出现资源表损坏,也会出现单个资源找不到的问题,该问题只会出现在单台设备上。


修复方案

  • 首先删除重复的同名资源:要么保留png版本删除nodpi下的矢量图,要么把矢量图移到通用drawable目录删除png版本,不要同时存在两份同名不同格式的资源
  • 如果要保留矢量图,建议在build.gradle中开启矢量图兼容配置,不管系统版本高低统一用兼容库加载矢量图:
android {
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
}
  • 如果你使用了App Bundle,可以在Play Console后台查看该用户的拆分包下发记录,确认是否存在资源包缺失的情况,也可以开启资源打包时的完整性校验,避免安装时资源表损坏。

内容的提问来源于stack exchange,提问作者Kenny Wyland

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:36:04