Android项目依赖冲突:ViewModelLazy重复类问题求助
解决Android依赖冲突:Duplicate class androidx.lifecycle.ViewModelLazy
问题原因
你遇到的重复类错误是因为com.firebaseui:firebase-ui-database:8.0.2依赖了旧版本的androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0,而androidx.paging:paging-runtime:3.1.1依赖了更高版本的androidx.lifecycle:lifecycle-viewmodel:2.5.1,两个版本的库包含相同类,导致编译冲突。android.enableJetifier=true仅用于转换旧Support库到AndroidX,无法解决同一AndroidX库的版本冲突问题。
解决方法
方法一:排除Firebase UI中的冲突依赖
修改com.firebaseui:firebase-ui-database的依赖声明,排除其中的旧版本lifecycle库,让它使用项目中其他依赖引入的高版本:
implementation ('com.firebaseui:firebase-ui-database:8.0.2') { exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel-ktx' exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel' }
方法二:强制统一lifecycle库版本
在build.gradle的android块中添加版本强制策略,让所有依赖都使用指定的lifecycle版本:
android { compileSdk 32 defaultConfig { // 原有配置... } buildTypes { // 原有配置... } compileOptions { // 原有配置... } // 添加以下配置 configurations.all { resolutionStrategy { force 'androidx.lifecycle:lifecycle-viewmodel:2.5.1' force 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1' } } }
验证冲突是否解决
执行Gradle依赖树命令,确认lifecycle相关依赖版本已统一:
- Windows:
gradlew.bat app:dependencies - Mac/Linux:
./gradlew app:dependencies
搜索androidx.lifecycle:lifecycle-viewmodel和androidx.lifecycle:lifecycle-viewmodel-ktx,确认所有条目都是2.5.1版本即可。
内容的提问来源于stack exchange,提问作者Mukesh Roy
相关产品推荐
相关产品推荐

