更新Android Studio 3.6与Gradle 3.5.0后项目无法构建求助
嘿,这个问题我之前帮不少开发者处理过,核心就是ConstraintLayout的测试版和新Gradle插件的兼容性冲突导致的。结合你的报错信息和已启用AndroidX的配置,咱们可以按下面的步骤快速修复:
1. 优先升级ConstraintLayout到稳定版本
你当前使用的constraintlayout-2.0.0-beta2是测试版,本身存在属性定义重复的bug,而Gradle 3.5.0对资源编译的校验比旧版本严格得多,直接触发了错误。
打开app模块下的build.gradle,把ConstraintLayout的依赖替换成最新的稳定版(比如2.0.4,你也可以根据AndroidX的更新记录选择更高的稳定版本):
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
修改后点击Sync Now同步项目,再执行Build -> Clean Project,之后重新构建试试。
2. 手动清理Gradle缓存(如果第一步没解决)
报错里的文件存在于Gradle缓存目录中,有时候旧的缓存资源不会自动更新,需要手动清理:
- 找到路径
C:\Users\Amin\.gradle\caches\transforms-2\files-2.1\c1ea7b9f1e5ec36cfafa4328570d20ad\,直接删除整个constraintlayout-2.0.0-beta2相关的文件夹 - 或者干脆删除
.gradle\caches整个目录,重启Android Studio后重新构建
3. 排查其他依赖的冲突(极端情况)
如果前面两步都没用,那可能是第三方库也定义了pivotX/pivotY属性,和ConstraintLayout产生了冲突。你可以用Gradle的依赖分析命令找出冲突源:
在Android Studio的Terminal里运行:
./gradlew app:dependencies
找到所有包含constraintlayout的依赖,然后排除掉重复的部分,比如某个第三方库依赖了旧版ConstraintLayout,你可以这样写:
implementation('com.example.thirdpartylib:1.0.0') { exclude group: 'androidx.constraintlayout' }
补充说明
这个问题的本质是:ConstraintLayout 2.0的早期测试版在资源文件里重复定义了pivotX和pivotY属性,旧版Gradle插件可能忽略了这个问题,但升级到3.5.0后,AAPT的校验逻辑更严格,就直接抛出了错误。所以升级到稳定版是最直接有效的解决方式。
内容的提问来源于stack exchange,提问作者Amin Pinjari

