Android依赖冲突:如何排除ZEGOCLOUD库中的冲突类?
解决Android依赖重复类冲突问题(针对ZEGOCLOUD UIKit库)
问题分析
错误提示明确显示androidx.annotation.AnimRes类在两个模块中重复:
androidx.annotation:annotation:1.5.0(由ZEGOCLOUD预构建通话库引入)androidx.annotation:annotation-jvm:1.7.0-alpha02(你主动引入的依赖)
你之前尝试排除ZEGOCLOUD库中的annotation-jvm模块未生效,大概率是因为ZEGOCLOUD实际依赖的是androidx.annotation:annotation而非annotation-jvm,排除方向有误。
解决方案
1. 调整依赖排除的目标模块
将排除的模块改为ZEGOCLOUD引入的androidx.annotation:annotation,保留你项目中的annotation-jvm依赖:
implementation ('com.github.ZEGOCLOUD:zego_uikit_prebuilt_call_android:2.1.2') { exclude group: 'androidx.annotation', module: 'annotation' }
2. 强制统一依赖版本(更推荐)
直接在模块级build.gradle中添加版本强制规则,让所有依赖统一使用你指定的androidx.annotation版本,彻底避免版本冲突:
configurations.all { resolutionStrategy { // 强制使用你项目中的版本 force 'androidx.annotation:annotation-jvm:1.7.0-alpha02' // 若你换成Android专属的annotation依赖,可改为: // force 'androidx.annotation:annotation:1.7.0-alpha02' } }
3. 排查完整依赖树定位根源
执行Gradle命令生成依赖树,精准查看ZEGOCLOUD库的依赖链:
./gradlew 你的模块名:dependencies
将命令中的「你的模块名」替换为实际模块(如app),在输出中搜索androidx.annotation,即可明确所有相关依赖的来源,再针对性处理。
额外建议
Android项目优先使用androidx.annotation:annotation(Android专属依赖),而非annotation-jvm(纯Java项目用),建议将你主动引入的依赖替换为androidx.annotation:annotation:1.7.0-alpha02,再配合版本强制规则,冲突解决会更顺畅。
内容的提问来源于stack exchange,提问作者Heinner Lara
相关产品推荐
相关产品推荐

