如何解决error:execution failed for task app:transformclasseswithjarmerging
推荐于2018-03-02
需要在gradle中配置下面的代码,原因是引用了多个libraries文件
defaultConfig {
multiDexEnabled true
}
2.Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/v4/app/BackStackState$1.class
原因:在所添加的jar包或aar包中也引用了support-V4,与工程中引用的相冲突
Ctrl+N --> 在搜索框中输入BackStackState --> 查找到所有引用该类的类,这些类即为引起冲突的类
去掉本工程中gradle中用于引用有冲突的包的代码或者将冲突的代码从jar包或aar包中移除,确保一个module中只引用了一份相同的第三方包
3.project sturcture和Project Structure 无论是按快捷键或者是从files中打开都不显示
event log中报:IllegalArgumentException:Multiple entries with same key: Google Inc.:Google APIs:23=Google APIs (Google Inc.) (API 23) and Google Inc.:Google APIs:23=Google APIs (Google Inc.) (API 23)
解决办法:先看一下系统配置的SDK的位置和Android Studio所用的路径是否一致,如果不一致重新配置系统的SDK路径或者是重新修改Android Studio的SDK路径
通过SDK Manager删除掉google API23
如果解决不了,卸载android studio -->重新安装 ,还有问题点击File --> Invalidate Cashes/Restart --> Invalidate and Restart,解决不了继续通过SDK Manager删除掉google API23
在开发的时候,经常遇到
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/v4/graphics/ColorUtils.cla
这类问题,网上都说是JAR包冲突,但解决的方法都说是删除重复的JAR包,但有些情况下却不能删除,因此在此记录一下自己遇到这类问题时的解决办法。
1 clear一下,看看能不能解决,经常遇到调试了半天,最后clear就自动好了的情况,我也不知道啥情况,感觉是缓存问题,但又觉得不太像;
2 若引用了相同的jar,删除一个吧,特别是在module很多的时候,里面经常引用相同的JAR,或者jar跟下载地址都是同一个,只用一个吧,好歹让代码别那么繁琐。
3 两个不同的JAR,里面引用了相同的其他jar,这样的问题最麻烦,没法删除,除非重新生成JAR;不过,可以在依赖里面排除相同的包,例如
fresco的依赖:
compile(
'com.facebook.fresco:fresco:0.14.1'
) {
exclude module:
'support-v4'
exclude group:
'com.android.support'
大括号里面写你要排除的东西
这种问题一般这样都能搞定,还没遇到其他状况