You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级至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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:29:07