升级至Android预览版P并引入Material库后遇类重复定义问题求助
解决AndroidX迁移后
Program type already present: android.support.v4.media.MediaBrowserCompat$ConnectionCallback$StubApi21错误 嘿,这个问题我太熟悉了——本质就是依赖冲突,你迁移到AndroidX后,有些第三方库还在偷偷引用旧的support-v4库,和你引入的AndroidX版legacy-support-v4撞车了。我给你一步步拆解解决方案:
1. 先补全AndroidX迁移的关键配置
首先检查你的项目根目录下的gradle.properties,必须加上这两行(如果没有的话):
android.useAndroidX=true android.enableJetifier=true
android.enableJetifier是核心,它会自动把所有第三方依赖里的旧support类替换成AndroidX的对应类,帮你避免大部分跨库冲突。
2. 排查冲突的依赖来源
执行这个命令查看你的依赖树,找出还在引用旧support-v4的库:
# Mac/Linux ./gradlew app:dependencies # Windows gradlew.bat app:dependencies
在输出里搜索android.support.v4.media,你大概率会发现这些嫌疑对象:
anko-common:0.9:这个版本太老了,还依赖旧的support库crashlytics:2.9.1:早期版本也可能没适配AndroidX
3. 针对性修复依赖
方案A:升级第三方库到AndroidX兼容版本
这是最彻底的解决方式,把旧依赖换成支持AndroidX的版本:
dependencies { implementation 'com.google.firebase:firebase-crash:15.0.2' implementation 'com.google.firebase:firebase-core:15.0.2' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" // 升级anko到支持AndroidX的版本 implementation 'org.jetbrains.anko:anko-common:0.10.8' implementation 'com.commit451:PhotoView:1.2.4' // 升级crashlytics到适配AndroidX的版本 implementation('com.crashlytics.sdk.android:crashlytics:2.10.1') { transitive = true; } implementation 'com.google.android.material:material:1.0.0-alpha1' implementation 'androidx.appcompat:appcompat:1.0.0-alpha1' implementation 'androidx.legacy:legacy-support-v4:1.0.0-alpha1' implementation 'androidx.legacy:legacy-support-core-utils:1.0.0-alpha1' }
方案B:临时排除冲突的依赖(如果暂时不能升级)
如果某些库没有AndroidX版本,就手动排除它带的旧support库:
dependencies { // ...其他依赖 implementation('org.jetbrains.anko:anko-common:0.9') { // 排除旧的support-v4依赖 exclude group: 'com.android.support', module: 'support-v4' } implementation('com.crashlytics.sdk.android:crashlytics:2.9.1') { transitive = true; // 检查是否需要排除support-v4,根据依赖树结果来 exclude group: 'com.android.support', module: 'support-v4' } // ...其他AndroidX依赖 }
4. 清理缓存并重建项目
最后执行清理命令,再Rebuild你的项目,确保旧缓存被清空:
./gradlew clean
然后在Android Studio里点击Build > Rebuild Project。
这样应该就能解决重复类的问题了!
内容的提问来源于stack exchange,提问作者mDiaz93
相关产品推荐
相关产品推荐

