gradle打包Duplicate jar entry错误

项目升级Gradle版本后构建失败,分析发现由于不同依赖包中存在重复类导致冲突。通过调整依赖版本解决了构建问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.现象

项目gradle版本由2.14.1升级到4.6之后,使用gradlew assembleRelease构建失败。

2.分析过程

2.1 --stacktrace获取异常信息

使用gradlew构建报错,没有详细的异常信息,gradlew 构建时添加--stacktrace参数打印台输出异常信息:

Caused by: java.io.IOException: Can't read [C:\Users\wanglujie\.gradle\caches\transforms-1\files-1.1\support-comp
at-25.3.0.aar\c055a17a22f2c9a0e737a3c3a0b1c246\jars\classes.jar(;;;;;;;**.class)] (Duplicate jar entry [android/s
upport/v4/widget/CompoundButtonCompatLollipop.class])

2.2 双shift健查找重复的类

从上述异常信息信息中可知,CompoundButtonCompatLollipop类在多个jar中出现,导致重复,在android studio中双击shift健,输入CompoundButtonCompatLollipop进行查找,找到是v4包和campat包中包含该类。并且版本不一样

2.3 使用 gradlew module名:dependencies命令查看某个模块的包依赖情况

项目中依赖片段截图如下:

 

 

可以看到,support-compat在butterknife中的版本是25.3.0,support-v4包在v7包中的版本是23.4.0,版本号不一致,导致CompoundButtonCompatLollipop类有多个版本。

compile 'com.android.support:appcompat-v7:23.4.0', gradle会自动加入所有v4包的依赖,并且是和v7相同的版本。

3. 解决

将v7的版本号修改为25.3.0即可。

 

 

参考资料

彻底弄清support支持库,以及v4 v7重复依赖问题深究

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值