Android Studio多设备测试出现ImageView加载致命异常,求解决方案
解决Android ImageView Inflate异常:Resources$NotFoundException(Drawable资源问题)
嘿,从你贴的错误日志来看,问题的核心很明确——你的**splash_logo这个Drawable资源在部分设备上没法被系统正确识别为Drawable类型**,直接导致了SplashActivity的布局加载失败。我给你整理了几个优先级从高到低的解决步骤,你可以挨个试试:
先检查资源本身的有效性
确认res/drawable/(或对应密度文件夹如drawable-xxhdpi)下的splash_logo是合法的Drawable资源:- 如果是图片文件(PNG/JPG/WebP),检查是否损坏,或者是不是用了某些旧设备不支持的格式(比如WebP需要Android 4.2.1+,如果兼容更低版本要做适配)
- 如果是XML Drawable(比如shape、selector),打开文件检查语法是否正确,根标签是不是
<shape>、<selector>这类标准的Drawable标签,有没有拼写错误
检查资源命名与存放位置
- 资源命名必须符合Android规范:只能用小写字母、数字、下划线,不能有大写字母、空格或特殊字符,否则部分设备会识别失败
- 有些旧设备对高密度文件夹的兼容性较差,建议把
splash_logo复制一份放到通用的drawable文件夹下,让系统自动适配不同密度的设备
清理项目缓存并重建
Android Studio的资源缓存偶尔会导致资源识别混乱,执行以下操作:- 点击菜单栏的
Build->Clean Project - 接着点击
Build->Rebuild Project - 重启Android Studio后重新运行应用
- 点击菜单栏的
确认资源引用没有错误
检查布局XML里的ImageView引用:确保写的是@drawable/splash_logo,而不是误写成@color/splash_logo或者其他类型的资源;同时检查SplashActivity的代码里有没有动态修改这个ImageView资源的逻辑,是否存在类型错误针对华为设备的特殊适配
错误日志里出现了HwResources.loadDrawable,说明部分问题出在华为设备上。你可以试试这两个小技巧:- 将图片转换为WebP格式(兼顾体积和兼容性)
- 在
AndroidManifest.xml的对应Activity标签里添加android:hardwareAccelerated="true",或者在Application标签全局开启硬件加速
内容的提问来源于stack exchange,提问作者Khalfan Mohamed
相关产品推荐
相关产品推荐

