记录一次Android编译错误的解决--重复类引起的DexArchiveMergerException

Android开发过程遇到问题,往往当时集中精力、绞尽脑汁解决,过后如释重负的干别的去了,等之后再遇到相同问题,才发现还得再去搜索解决办法,形成不了积累,所以准备记录一下加深印象。正好寻思了好久要尝试写写博客,就用记录问题来开始。

问题场景

开发了好久的App测试没问题终于准备上线,但是打生产包的时候,发生错误,神奇之处在于打debug包完全没问题,报错如下:

clipboard.png

涂掉的部分是在升级了gradle之后才出现的提示

定位过程

1.尝试了几次clean rebuild,错误依旧。
2.接着搜索文章,大部分提示是由于引入的第三方包的冲突或者是没有加入java8支持等等。但是这也解释不了debug为什么没问题,检查之后也没有发现有冲突的包和相关的问题。
3.接着怀疑gradle版本的问题,于是壮着胆子选择升级gradle和插件,还好网络给力,升级之后,错误依旧,但是报错内容发生了变化如下

clipboard.png

多了这个提示 ,并且指向了具体的类,全局搜索,终于发现了问题所在,居然是有同名的类

clipboard.png

话不多说,删掉,编译,问题解决,长舒一口气~~

引申

1.及时升级gradle以及其他工具还是必须的,虽然升级可能比较蛋疼,但是有时候能提供更多的错误信息
2.重复类引起的错误为什么在debug包的时候没有影响,而在release时却通不过,这个问题以及打包过程中发生的异同后续会继续学习

写在最后

引起DexArchiveMergerException这样的错误原因可能有多种,获取到具体的原因才能解决问题。

你可能感兴趣的:(android相关问题)