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

Android Studio无法识别新创建的Drawable资源问题求助

兄弟,我之前在项目里也踩过完全一样的坑!这种只在特定项目出现的资源识别问题,基本都是项目缓存、配置或者资源本身的小问题,给你列几个亲测有效的排查解决步骤,按顺序来试:

1. 先确认资源的命名和位置是否合规
  • 检查资源文件所在目录:必须放在标准的drawable(通用)或drawable-xxxdpi(密度适配)目录下,自己随便新建的非标准文件夹AS是不会识别的。
  • 命名严格遵守Android规则:只能用小写字母、数字、下划线,不能有大写、空格、连字符(比如my_bg.xml是对的,MyBg.xml/my-bg.xml都会翻车)。
2. 彻底清理缓存和构建文件(别只点Clean Project!)

你说已经尝试清理了,但大概率没清彻底,试试这套组合拳:

  • 先点顶部菜单栏的 Build > Clean Project,完成后再点 Build > Rebuild Project;
  • 如果没用,手动删除项目根目录的.gradle文件夹和app/build文件夹,然后重启Android Studio再重新构建;
  • 终极杀招:File > Invalidate Caches...,勾选Invalidate and Restart,这个能清空AS的全局缓存,很多奇怪的资源识别问题都能靠它解决。
3. 检查app模块的gradle配置

打开app/build.gradle文件,排查这几个点:

  • 看android块里的sourceSets配置,有没有误把drawable目录排除?正常配置应该是:
android {
    sourceSets {
        main {
            res.srcDirs = ['src/main/res']
        }
    }
}
  • 确认compileSdkVersion和targetSdkVersion版本:如果你的xml资源用了高版本的属性(比如Android 12+的新属性),但compileSdk版本太低,AS也可能不识别。
4. 检查资源文件本身的语法正确性

有时候AS不会标红,但资源文件其实有语法错误,导致无法被识别。比如shape/selector标签有没有漏写、属性值是否合法?举个正确的shape示例:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#FF0000" />
    <corners android:radius="8dp" />
</shape>

你可以把这个资源文件复制到其他正常项目里测试,如果在其他项目能用,那就是当前项目的配置问题;如果也不能用,那就是资源文件本身写错了。

5. 排查是否开启了资源压缩

如果项目开启了资源压缩,可能会把新创建的资源误判为“未使用”而被移除。打开app/build.gradle看buildTypes配置:

buildTypes {
    release {
        shrinkResources true // 这个如果设为true,开发阶段可能会误删资源
        minifyEnabled true
    }
}

开发阶段可以先把shrinkResources改成false,重新构建后再看资源能不能显示。

6. 检查模块依赖和资源冲突

如果项目有多个模块,看看是不是其他模块里有同名的资源,导致当前模块的资源被覆盖了?或者检查模块的依赖配置,有没有不小心覆盖了资源目录。

要是以上步骤都试过还不行,你可以试试把项目导出成zip包,然后重新导入Android Studio——有时候项目的配置文件会莫名其妙损坏,重新导入就能解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:11:15