应用安装后崩溃:找不到Drawable资源com.aaronapp.hideme:drawable/ic_clear
你遇到的这个崩溃核心问题很明确:系统找不到符合要求的ic_clear Drawable资源,因为它识别到这个资源ID对应的不是Drawable类型(可能是颜色、字符串或者其他资源),但FloatingActionButton明确需要一个Drawable作为图标。
下面是一步步的排查和解决方法:
第一步:检查
ic_clear资源本身
先去项目的res/drawable(或对应的密度目录如drawable-hdpi)下找ic_clear相关文件:- 如果文件不存在:说明你漏添加了这个Drawable资源,需要把对应的图标文件(vector xml或png/jpg)放到drawable目录下。
- 如果文件存在:打开它确认是不是标准的Drawable格式——比如vector drawable的根标签是
<vector>,shape drawable是<shape>,如果是其他标签(比如<color>)那肯定不对,需要修正成Drawable类型的文件。 - 另外注意:如果图标是放在
mipmap目录下的,布局里的引用应该写成@mipmap/ic_clear,而不是@drawable/ic_clear。
第二步:排查布局文件的资源引用
看你提供的FAB代码片段,重点检查android:src属性:- 确认引用的是
@drawable/ic_clear,而不是@color/ic_clear或者其他错误的资源类型。 - 还要警惕资源ID冲突:如果你的项目里有另一个同名的非Drawable资源(比如一个颜色资源也叫
ic_clear),系统会混淆资源类型,这种情况建议给Drawable资源重命名(比如改成ic_clear_icon),避免冲突。
- 确认引用的是
第三步:清理项目缓存并重建
有时候Android Studio的缓存会导致资源识别异常,试试这些操作:- 点击菜单栏的
Build→Clean Project - 接着点击
Build→Rebuild Project - 极端情况下可以删除项目根目录的
.gradle文件夹和模块下的build文件夹,然后重新同步项目。
- 点击菜单栏的
第四步:检查Vector Drawable兼容(如果用的是矢量图)
如果你用的是vector drawable作为ic_clear,需要确保Module级的build.gradle里开启了兼容配置:android { defaultConfig { vectorDrawables.useSupportLibrary = true } }同时确认你的support库版本和其他依赖没有冲突,避免因兼容问题导致资源加载失败。
内容的提问来源于stack exchange,提问作者beastlyCoder
相关产品推荐
相关产品推荐

