旧Android项目更新遇Android Studio重复类编译错误求解决
Android编译重复类冲突解决方案
一、Firebase模块重复类处理
冲突类com.google.firebase.iid.FirebaseInstanceIdReceiver同时存在于jetified-firebase-iid-17.0.3-runtime和jetified-firebase-messaging-23.2.1-runtime,原因是firebase-messaging 23.x及以上版本已内置FirebaseInstanceId功能,无需单独依赖firebase-iid,旧项目可能同时引入二者导致冲突。
解决步骤:
- 打开Module级别的
build.gradle,直接移除所有显式依赖的firebase-iid相关条目 - 若为第三方库间接引入的依赖,在firebase-messaging依赖中排除firebase-iid模块:
implementation('com.google.firebase:firebase-messaging:23.2.1') { exclude group: 'com.google.firebase', module: 'firebase-iid' }
- 执行
./gradlew app:dependencies查看依赖树,确认firebase-iid已被完全排除
二、Kotlin标准库版本不一致处理
Kotlin 1.8.10核心库与1.7.10的jdk7/jdk8扩展库存在大量重复类,核心原因是项目中Kotlin版本未统一。
解决步骤:
- 在Project级别的
build.gradle中统一指定Kotlin版本:
buildscript { ext.kotlin_version = "1.8.10" dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
- 打开Module级别的
build.gradle,替换所有Kotlin相关依赖的版本为1.8.10,且仅保留最高版本的扩展库(jdk8包含jdk7的内容,无需重复引入),示例:
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
- 清理项目缓存并重新编译:
./gradlew clean ./gradlew assembleDebug
内容的提问来源于stack exchange,提问作者Insou
相关产品推荐
相关产品推荐

