如何解决.gradle缓存下core-1.7.0/res/values触发的Resource Linking Failed错误
你之前尝试的清理缓存、重建项目、删除gradle缓存目录等操作无效,因为该问题的核心原因是依赖版本和编译SDK版本不匹配,和缓存无关,可按如下步骤修复:
解决方案
- 优先调整
compileSdkVersion版本:该报错的核心原因是androidx.core:core:1.7.0依赖使用了Android 12(API 级别31)才新增的lStar系统属性,你当前项目的编译版本低于31就会触发资源链接失败。直接将项目所有模块build.gradle文件中的compileSdkVersion统一修改为31或更高版本即可,修改后重新同步项目构建。 - 若暂时无法升级编译版本,可强制降级core依赖版本:在app模块
build.gradle文件中添加如下配置,强制使用无lStar属性的低版本core库:
configurations.all { resolutionStrategy { // Java项目替换为 androidx.core:core:1.6.0 force 'androidx.core:core-ktx:1.6.0' } }
- 排查自定义属性冲突:检查项目中是否有自定义
<attr>命名为lStar或者alpha,如果存在和系统属性重名的情况,修改自定义属性的名称后重新构建。 - 适配Gradle插件版本:如果升级
compileSdkVersion到31后仍有报错,将Android Gradle插件版本升级到7.0及以上稳定版,和高版本编译SDK做适配。
内容的提问来源于stack exchange,提问作者Kaita John
相关产品推荐
相关产品推荐

