首页 > 代码库 > com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/annotation/ColorRes.class

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/annotation/ColorRes.class

技术分享

保存信息如上:

我在添加一个支持库的时候遇的问题,这个库com.yanzhenjie:album:1.0.5

这是由于v4包重复导致的,在网上我也找过多种解决方案

  用了这种,方式 configurations {
        all*.exclude group: ‘com.android.support‘, module: ‘support-v4‘
        all*.exclude group: ‘com.android.support‘, module: ‘support-annotations‘
    }
  和这种搞的   
     compile (‘com.yanzhenjie:album:1.0.5‘){
              exclude module: ‘support-v4‘
              exclude module: ‘support-annotations‘
        } 
这两种方式都无效
 
原因可能是支持库中使用的较高的版本编译的,貌似高版本里面直接引用了v4包,所以不需要在引用
而我的另一个引用支持module里面有v4jar包,删除是肯定不行的,会报错找不到文件,但是不删还有冲突,
于是我纠结了好久没解决,偶然的一天,突然解决了,解决方案如下:
1.删除依赖支持module中的v4包这时候报错
2.找到报错文件,在报错位置alt+enter(提示功能),此时提示框出来,如下,这时候提示框第一个就提示让add 一个libary支持xxx这是什么吊,先不管,点了再说
 
技术分享

 

 3.点了以后咦,突然好了,这是怎么回事?(稍后再讲)
技术分享

 

 4.在运行Fragement也找不到
技术分享

 

5.同理导入

技术分享

6.在运行好了

7.这究竟是做了什么了?原来是工具在module下的build.gradle下加入了下面两个,第一次导入的就是第一个,第二次就是第二个喽

技术分享

伸手粘贴党专享福利:

compile ‘com.android.support:support-core-ui:25.3.1‘
compile ‘com.android.support:support-fragment:25.3.1‘

8.其实这个错误是多个v4重复导致的,高版本中有的包含有了v4,所以会出现冲突现象,不过这个问题还挺不好搞

 本篇文章属于原创,真心很累打了这么多字,给点个赞吧

 
 
 
 

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/annotation/ColorRes.class