编译时日志大概是这样的:
还有这样的:
解决过程:
因为项目在两周前刚发布过,所以两周前的时间节点肯定是可以打正式包的。。。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的错。