解决Android resource linking failed报错:mtrl_btn_text_color_selector找不到
问题排查解决步骤
- 第一步:清理缓存并重建项目
打开Android Studio,依次点击File -> Invalidate Caches...,勾选「Clear file system cache and local history」后重启IDE,重启完成后执行Build -> Rebuild Project,大部分资源未识别的问题可通过该操作解决。 - 第二步:校验文件路径、命名与语法
确认文件存放路径为app/src/main/res/color(而非res/values目录下的color文件),文件名完全为mtrl_btn_text_color_selector.xml,无大小写、拼写错误;检查xml文件语法是否正确,标签是否完整闭合。
若文件是手动复制到目录的,可删除现有文件后右键res -> New -> Color Resource File,输入对应文件名后再粘贴代码内容,保证IDE正确注册资源。 - 第三步:检查主题与依赖配置
该selector中使用了?attr/colorPrimary、?attr/colorOnSurface等Material Components专属属性,需满足两个条件:
- app模块
build.gradle的dependencies中已引入Material依赖,示例(版本根据你的compileSdk匹配即可):
implementation 'com.google.android.material:material:1.9.0'
res/values/themes.xml中应用的主题父类为Theme.MaterialComponents.xxx系列,而非旧的AppCompat主题。
- 第四步:校验资源引用方式
检查引用该selector的位置(布局文件、样式文件等),是否写对了引用格式为@color/mtrl_btn_text_color_selector,不要误加android:前缀或者写错路径。 - 第五步:手动清理编译残留
若以上操作都无效,可手动删除项目根目录的build文件夹、app模块下的build文件夹,再重新执行Gradle同步后重建项目。
内容的提问来源于stack exchange,提问作者Sifundo
相关产品推荐
相关产品推荐

