Android Studio导入项目后出现Android resource linking failed错误求助
问题解决:Android资源链接失败(缺失颜色资源)
错误现象
导入项目遇gradle调用失败后,手动复制XML和Java文件出现如下编译错误:
Android resource linking failed com.example.android.pets.app-mergeDebugResources-27:/values/values.xml:6040: error: resource color/purple_500 (aka com.example.android.pets:color/purple_500) not found. com.example.android.pets.app-mergeDebugResources-27:/values/values.xml:6041: error: resource color/purple_700 (aka com.example.android.pets:color/purple_700) not found. com.example.android.pets.app-mergeDebugResources-27:/values/values.xml:6042: error: resource color/white (aka com.example.android.pets:color/white) not found. com.example.android.pets.app-mergeDebugResources-27:/values/values.xml:6044: error: resource color/teal_200 (aka com.example.android.pets:color/teal_200) not found. com.example.android.pets.app-mergeDebugResources-27:/values/values.xml:6045: error: resource color/teal_700 (aka com.example.android.pets:color/teal_700) not found. com.example.android.pets.app-mergeDebugResources-27:/values/values.xml:6046: error: resource color/black (aka com.example.android.pets:color/black) not found. com.example.android.pets.app-mergeDebugResources-27:/values/values.xml:6040: error: resource color/purple_500 (aka com.example.android.pets:color/purple_500) not found. com.example.android.pets.app-mergeDebugResources-27:/values/values.xml:6041: error: resource color/purple_700 (aka com.example.android.pets:color/purple_700) not found. com.example.android.pets.app-mergeDebugResources-27:/values/values.xml:6042: error: resource color/white (aka com.example.android.pets:color/white) not found. com.example.android.pets.app-mergeDebugResources-27:/values/values.xml:6044: error: resource color/teal_200 (aka com.example.android.pets:color/teal_200) not found. com.example.android.pets.app-mergeDebugResources-27:/values/values.xml:6045: error: resource color/teal_700 (aka com.example.android.pets:color/teal_700) not found. com.example.android.pets.app-mergeDebugResources-27:/values/values.xml:6046: error: resource color/black (aka com.example.android.pets:color/black) not found. com.example.android.pets.app-mergeDebugResources-27:/values-night-v8/values-night-v8.xml:36: error: resource color/purple_200 (aka com.example.android.pets:color/purple_200) not found. com.example.android.pets.app-mergeDebugResources-27:/values-night-v8/values-night-v8.xml:37: error: resource color/purple_700 (aka com.example.android.pets:color/purple_700) not found. com.example.android.pets.app-mergeDebugResources-27:/values-night-v8/values-night-v8.xml:38: error: resource color/black (aka com.example.android.pets:color/black) not found. com.example.android.pets.app-mergeDebugResources-27:/values-night-v8/values-night-v8.xml:40: error: resource color/teal_200 (aka com.example.android.pets:color/teal_200) not found. com.example.android.pets.app-mergeDebugResources-27:/values-night-v8/values-night-v8.xml:41: error: resource color/teal_200 (aka com.example.android.pets:color/teal_200) not found. com.example.android.pets.app-mergeDebugResources-27:/values-night-v8/values-night-v8.xml:42: error: resource color/black (aka com.example.android.pets:color/black) not found. com.example.android.pets.app-mergeDebugResources-27:/values-night-v8/values-night-v8.xml:36: error: resource color/purple_200 (aka com.example.android.pets:color/purple_200) not found. com.example.android.pets.app-mergeDebugResources-27:/values-night-v8/values-night-v8.xml:37: error: resource color/purple_700 (aka com.example.android.pets:color/purple_700) not found.
原因
报错里的purple_500、teal_200等是Android Studio默认新项目生成的标准颜色资源,你复制文件时未同步复制对应的颜色定义文件,或者资源路径不匹配,导致编译时找不到这些颜色引用。
解决办法
1. 补全缺失的颜色定义
在项目res/colors.xml(若有夜间模式,同步修改res/values-night/colors.xml)中添加对应颜色值:
<!-- 常规模式颜色 --> <color name="purple_200">#BB86FC</color> <color name="purple_500">#6200EE</color> <color name="purple_700">#3700B3</color> <color name="teal_200">#03DAC5</color> <color name="teal_700">#018786</color> <color name="black">#000000</color> <color name="white">#FFFFFF</color> <!-- 夜间模式颜色 --> <color name="purple_200">#FFBB86FC</color> <color name="purple_700">#FF3700B3</color> <color name="black">#FF000000</color> <color name="teal_200">#FF03DAC5</color>
2. 替换为现有颜色
如果不需要默认颜色,直接把XML中引用这些颜色的地方替换成项目已有的颜色值,比如将@color/purple_500改成#6200EE或自定义颜色资源。
3. 同步完整资源文件
如果原项目有对应的颜色资源文件,直接将res/colors.xml、res/values-night/colors.xml等复制到当前项目对应目录,保证资源路径和引用一致。
内容的提问来源于stack exchange,提问作者Mohd Kaif khan
相关产品推荐
相关产品推荐

