Android Studio运行无错,Play商店安装后出现Resources$NotFoundException崩溃如何解决
崩溃原因
从日志可以直接定位到核心错误:你在HomeActivity.java第234行调用AppCompatImageView.setImageResource()时,传入了维度类型(dimen)的资源IDR.dimen.hint_pressed_alpha_material_dark,系统尝试把维度值当成Drawable加载,直接抛出资源类型不匹配的异常。
本地调试未报错、仅Play商店安装包崩溃的原因:
- Debug构建模式下不会执行严格的资源校验,也不会重分配资源ID,恰好这个dimen的ID值和某个存在的Drawable ID重合,所以本地运行时凑巧加载到了对应资源,没有触发崩溃
- 正式上架的Release包开启了R8混淆、资源压缩,或是使用了App Bundle分拆分发,资源ID会重新分配,之前的巧合消失,错误就暴露了
修复步骤
- 打开
com.example.updatedspiritualnote.ui.HomeActivity文件,定位到第234行的setImageResource调用 - 将传入的参数替换为你实际要显示的图片对应的
R.drawable.xxx或R.color.xxx资源ID - 如果你确认传入的就是Drawable资源ID,做如下排查:
- 检查
res/drawable缺省目录下是否存在你要使用的Drawable文件,不要仅把文件放在特定dpi、特定系统版本的限定目录下 - 检查
build.gradle的资源裁剪配置,确认目标资源没有被误裁剪,必要时可以在res/raw/keep.xml中添加规则保留对应资源 - 本地打Release签名包直接安装测试,确认修复生效后再上架Play商店
- 检查
内容的提问来源于stack exchange,提问作者Micheal_ Moris
相关产品推荐
相关产品推荐

