Android:打release包时遇到的一个花式报错-ZipException: duplicate entry:xx/xx/xx/xx.class

编译时日志大概是这样的:
这里写图片描述
还有这样的:
这里写图片描述
这里写图片描述

解决过程:
因为项目在两周前刚发布过,所以两周前的时间节点肯定是可以打正式包的。。。reset之后,一样的报错。
那么肯定是开发环境出了问题咯。。。仔仔细细检查了一遍本地这两周之内的改动,没有任何问题,而且几个人的开发环境上跑都是一样的错。
然后就使用了黑科技stackoverflow,都是说jar包重复,但是那个jar包我真的只引用了一次,而且我没改代码也报错啊。
然后某同学灵机一动要把jar包移到app下(原来是在一个module下的),然后我就把整个module移到了app下,打包,报错,这次不是原来那个a.a.a.a了,变成了umeng的a.a.a.d。。。
我好像明白了什么。
把umeng相关的注释掉,打包,一切正常。
去umeng官方看更新日志,上上周刚更新。。。
感觉以前给自己挖了个坑。
虽然友盟的sdk文档上写着gradle中这样写:
compile ‘com.umeng.analytics:analytics:latest.integration’
这个latest真是要命。

最后,项目结构原封不动,只是在gradle中改了umeng的版本。

总结下来就是,如果你的项目在你未引入新库的情况下某天突然报了个duplicate entry,那么请检查一下gradle中有没有引入的是某些库的latest版本,latest虽然能让你保持最新的库,但是你掌控不了,除非这是你自己写的库。其实移动module也是可以试试的,只是代码看着就乱一些。

ps:我很想知道,为什么它不在一开始就报umeng的错而是报了另外一个三方jar的错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值