最近应用新框架遇到这样一个错误差不多搞挂我了,卡了我一个星期时间,请教了好几个朋友,都没有找到解决办法:
具体错误如下:
Error:Execution failed for task ':app:transformClassesWithJarMergingForRelease'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/xxx/xxxx/BuildConfig.class
我先简单的介绍一下我的应用场景:
最近公司新项目,准备用点新玩意上去,搞了个组件式开发+MVP+RXjava+RxAndroid +arouter(阿里路由)+retrofit
在集成和仿照框架过程中,无意中多个module中,有两个module 搞了个项目之间依赖,编译出错后,重新build(可能就是build这次后,导致后来出现了那次无法找到错误) 后来改了过来.也就没有管了, 该项目debug运行的时候,是完全没有问题的
但是一单realease打包,结果出现上诉错误,我找到了这个自动生成的类, 把所有用到这个类地方都替换掉了,结果realse的时候还是报错.朋友提示是依赖包出现了问题,但是我所有的地方都没有用到这个自动生成的类,
后来百度,谷歌各种都试过了, 一直解决不了, 弄了个把星期, 后来没有办法了,就重新新建了一个工程,把这些写好的代码和模块,一个模块一个模块复制到新的工程中,并复制一点 就realse一下,看是否报错,
知道复制其中的一个模块后 rebuild的时候发现 ,原来好几个component_data module下的类,结果导入到另外一个module 的时候,显示导入的包是在component_base下面, 这两个module就是之前项目之间引用导致出了问题的mudule
后来很多导入错误的类引用删了重新引用后,再次打包,这次工程能够正常的realse了
总结:
出现了上述这个这个错误,如果还继续一直百度谷歌下去,会一直找不到答案, 类似我遇到的这种问题,网上根本很难找到答案, 不如换个思路去考虑,重新新建一个工程慢慢copy原来的代码,知道发现问题点.
如果你遇到上述问题,可以参考一下我的这篇,希望能够帮助到你!