迁移至AndroidX后layout_anchorGravity资源重复定义错误求助
解决AndroidX迁移后
layout_anchorGravity资源重复定义的问题 我来帮你搞定这个AndroidX迁移后的资源冲突问题——这个报错通常是旧Support库依赖、未适配AndroidX的第三方库,或者重复依赖导致的。结合你的Gradle配置,我整理了几个针对性的解决方案:
1. 替换旧架构组件依赖为AndroidX版本
你当前用的android.arch.lifecycle和android.arch.persistence.room是旧的Support架构组件,和AndroidX库存在资源冲突,必须换成对应的AndroidX版本:
// 替换旧的Lifecycle依赖 def lifecycle_version = "2.2.0" implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version" kapt "androidx.lifecycle:lifecycle-compiler:$lifecycle_version" // 替换旧的Room依赖 def room_version = "2.2.5" implementation "androidx.room:room-runtime:$room_version" kapt "androidx.room:room-compiler:$room_version"
2. 修复并升级ButterKnife依赖
你的依赖里有两处重复的ButterKnife配置,而且7.0.1版本完全不支持AndroidX,这是冲突的重灾区:
- 先删除重复的
implementation 'com.jakewharton:butterknife:7.0.1' - 替换为支持AndroidX的版本:
implementation 'com.jakewharton:butterknife:10.2.3' kapt 'com.jakewharton:butterknife-compiler:10.2.3'
3. 升级或排查冲突的第三方库
部分旧第三方库还在使用Support库资源,和AndroidX冲突:
com.github.afollestad.material-dialogs:core:0.8.5.5版本过旧,建议升级到支持AndroidX的最新版本(比如3.3.0)- 检查
libs和libsDebug目录下的jar包,确认是否包含未迁移的Support库文件,如有则替换为AndroidX兼容版本
4. 确认Jetifier配置已开启
确保gradle.properties里已经开启Jetifier,它会自动把第三方库的Support依赖转换成AndroidX:
android.useAndroidX=true android.enableJetifier=true
5. 彻底清理后重新构建
完成上述修改后,执行以下步骤清除缓存:
- 执行命令:
./gradlew clean - 在Android Studio中点击
File > Invalidate Caches... > Invalidate and Restart - 重新同步项目并构建
按这些步骤操作后,layout_anchorGravity的重复定义问题应该就能解决了。
内容的提问来源于stack exchange,提问作者AresProductions
相关产品推荐
相关产品推荐

