Android Studio添加底部导航Activity时出现重复类错误求助
解决Android中Duplicate class androidx.lifecycle相关冲突问题
这个错误的核心原因是项目里同时引入了不同版本的androidx.lifecycle:lifecycle-viewmodel和androidx.lifecycle:lifecycle-viewmodel-ktx,两个模块包含完全相同的类文件,导致编译时冲突。android.enableJetifier=true主要用于将旧Support库转换为AndroidX,对同库不同版本的冲突无效。
下面是具体解决方法:
方案1:统一Lifecycle库版本
- 打开项目根目录的
build.gradle(Project级别),在buildscript的ext块里统一声明Lifecycle版本:
buildscript { ext { lifecycle_version = "2.5.1" } // 其他原有配置... }
- 切换到Module级别的
build.gradle,替换原有的Lifecycle依赖,使用统一版本:
// 替换旧的依赖声明 implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
- 点击Android Studio右上角的"Sync Now"同步Gradle,之后重新编译项目。
方案2:排除冲突的依赖模块
如果是第三方依赖自动引入了旧版本的lifecycle-viewmodel-ktx,可以在对应依赖声明里排除该模块:
// 示例:假设某第三方库导致冲突,在其依赖中排除旧模块 implementation 'com.example:third-party-lib:1.0.0' { exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel-ktx' }
- 同步Gradle后重新编译。
方案3:定位冲突来源(可选)
如果不确定哪个依赖引入了旧版本库,可通过依赖树排查:
- 在Android Studio的Terminal中执行命令:
./gradlew app:dependencies
- 搜索
androidx.lifecycle:lifecycle-viewmodel-ktx的所有引用,找到引入2.3.1版本的依赖项,再用方案1或2处理。
内容的提问来源于stack exchange,提问作者Casparo
相关产品推荐
相关产品推荐

