android 依赖重复冲突解决

项目要集成一个第三方功能,中途出现依赖重复的报错
解决方法:
用exclude 忽略某个依赖内的依赖

implementation ('com.android.support.test.espresso:espresso-core:3.0.2'){
    exclude group:'com.android.support',module: 'support-annotations'
}

但我的情况又有点不一样,重复的是某个依赖内的class
报错:

Program type already present: javax.annotation.CheckForNull

网上有种方法是双击shift会自动弹出重复的依赖项,但我的弹出是空的;
最后使用了另一个快捷键:ctrl+n 粘贴报错的内容CheckForNull自动全局文件搜索:
会发现冲突的文件已经出现了(我这边是两个地方,一个是c盘的gradle/caches里面有个地方的文件和项目的第三方功能集成里面的一个aar包重复了,里面都含有 javax.annotation.CheckForNull这个CheckForNull.class文件)
采用了暴力解决方法 直接把第三方的class文件删除,运行成功。
我这里是 javax.annotation文件夹下有99%的文件和c盘下的一个文件里面内容几乎一样,所以对比完毕以后把第三方的 javax/annotation内所有和c盘重复的文件全部删掉了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Gradle 是 Android 开发中使用的构建工具,用于管理项目中的依赖库和构建过程。在 Android Gradle 中,可以通过在 build.gradle 文件中声明依赖来管理项目中所需的第三方库。 首先,要避免重复依赖,可以通过以下几种方式来解决: 1. 使用 implementation 替代 compile: 在构建文件中,使用 implementation 来声明依赖而不是 compile。implementation 会自动解决版本冲突,并排除掉传递性依赖中的冗余依赖。 2. 使用 exclude 指令: 如果遇到了冗余的依赖,可以使用 exclude 指令来排除掉特定的依赖项。在依赖声明中添加 exclude 指令,指定要排除的库名称和组织。 3. 使用统一的依赖版本: 可以在项目的 root build.gradle 文件中定义一个变量来统一管理依赖的版本,然后在所有的 module 的 build.gradle 文件中引用这个变量。 另外,如果希望忽略某个依赖,可以使用以下方式: 1. 使用 implementation 进行依赖声明: 如果在某个 module 的 build.gradle 文件中使用 implementation 来声明依赖,那么该依赖将不会传递给该 module 的依赖项。 2. 使用 exclude group 指令: 如果希望忽略某个库的所有依赖,可以在依赖声明中使用 exclude group 指令来排除掉某个组织的所有依赖。 总结来说,Android Gradle 提供了一些方法来管理和解决依赖冲突问题,包括使用 implementation 替代 compile,使用 exclude 指令去除重复依赖,使用统一的依赖版本,以及使用 implementation 和 exclude group 进行依赖的忽略。通过合理地使用这些方式,可以有效地管理依赖库并避免不必要的冲突重复依赖

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值