如何修复org.jetbrains.annotations.TestOnly类重复报错问题
解决方案
核心原因说明
你当前的exclude配置未生效的核心原因是:新版Android Gradle插件已废弃compile依赖配置,你配置的compile.exclude仅对已淘汰的compile配置生效,对当前项目使用的implementation、annotationProcessor、testImplementation等配置没有作用。
具体解决步骤
1. 修正全局exclude配置
替换你当前的configurations配置为覆盖全依赖类型的配置:
configurations { // 对所有依赖配置生效 all { exclude group: 'org.jetbrains' , module:'annotations' exclude group: 'org.jetbrains.kotlin' , module:'kotlin-stdlib' exclude group: 'org.jetbrains.kotlin' , module:'kotlin-stdlib-common' exclude group: 'com.intellij', module:'annotations' } }
2. 可选:强制统一注解包版本
如果排除配置后出现类找不到的报错,可改用强制统一版本的方案,避免不同间接依赖引入不同版本的注解包导致冲突:
configurations.all { resolutionStrategy.force 'org.jetbrains:annotations:23.0.0' }
3. 检查本地jar包冲突
你配置了本地libs目录的jar包依赖,需检查libs文件夹下是否存在包含org.jetbrains.annotations类的jar包,如有可直接删除该冗余jar,或移除对应的传递依赖。
4. 定位冲突来源(可选)
如果以上方案未解决,可执行以下Gradle命令打印全量依赖树,搜索org.jetbrains:annotations定位引入冲突包的间接依赖,针对单个依赖单独配置exclude:
./gradlew :app:dependencies
内容的提问来源于stack exchange,提问作者Christian Bohli
相关产品推荐
相关产品推荐

