原文链接:https://www.jianshu.com/p/907cf26fff4e
运行的时候正常,打包的时候出现此异常:
Error:Execution failed for task ':app:transformClassesWithJarMergingForRelease'. com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/design/widget/CoordinatorLayout$1.class
这个错误大家都说是支持库的版本不同导致的,但是非常奇怪的是我明明导入的项目的支持库也是用的27.0.2,但还是报这个错!
参考一:
https://stackoverflow.com/questions/49496941/duplicate-entry-android-support-design-widget-coordinatorlayout
于是使用如下配置加入到你的项目的
configurations.all {
resolutionStrategy {
force 'com.android.support:design:27.0.2'
force 'com.android.support:support-v4:27.0.2'
force 'com.android.support:appcompat-v7:27.0.2'
}
}
这个配置就是强制使用此版本的支持库,然后我们再来打包,发现还是不行!
最后我只有把项目的版本也改为和引用的项目的版本一样,都为27.1.0才成功!这个问题搞了我一天,太郁闷了,关键你只知道是因为出现相同的包的错误,而去猜测把包换为统一版本就可以了!但最后不敢如何清理项目,如何强制使用支持库版本,都没有办法。
我也是无意中看到这个信息:
https://blog.csdn.net/guozhaohui628/article/details/80452952
抱着试一试的态度去做,没想到反而解决了!
总结:
项目说包重复,那肯定就是包重复了,此情况,最好更新自己的项目的支持包到最新,而不要企图去更改引用的项目的支持包和自己项目一致。这样不仅改变了引用项目的依赖,也可能导致项目依赖的其他项目出错而导致死循环!最好的办法就是不改变引用项目的依赖,而去改变自己!