同步SVN仓库中的代码,更新后,运行项目,出现如下错误:

com.android.build.api.transform.TransformException: 

java.util.zip.ZipException: duplicate entry: uk/co/senab/photoview/BuildConfig.class
  • 1
  • 2
  • 3

以上大概意思:重复依赖,重复了条目。

找到原因,对症下药。想想应该不难哦,减少重复依赖的库貌似可以搞定了。

1.在Gradle中, 删除photoview的依赖包

在Gradle中先注释掉photoview的依赖库,试验下,是否该库重复。

dependencies {
// compile 'com.bm.photoview:library:1.4.1'
}
  • 1
  • 2
  • 3

这下应该可以了吧,一运行,傻眼了。结果无效,依旧报错。

注意点

除开Gradle依赖类库之外,还可以在项目中的libs下静态方式添加类库。

若是使用静态方式添加jar类库的,请删除重复的jar

2. 接着,在项目中根目录中打开命令行或者AndroidStudio中的terminal窗口中运行

Mac os系统:

./gradlew clean  
  • 1

Wind系统:

gradlew clean
  • 1

执行完清除gradle的命令行后。欢天喜地的去调试,结果无效,依旧报错。感觉有点不对经呀,怎么还不行哦,又是找到假李逵了,还得继续找真李逵。

3. 继续查找问题,查看输出的依赖包

在AndroidStudio的Project视图下,查看.idea文件夹–>libraries文件夹–>PhotoView_1_3_1.xml(对应依赖库的日志)。

<component name="libraryTable">
<library name="PhotoView-1.3.1">
<CLASSES>
<root url="file://$USER_HOME$/.android/build-cache/820a5f0226a474bc3f9a23b30f05e8cad9c35149/output/res" />
<root url="jar://$USER_HOME$/.android/build-cache/820a5f0226a474bc3f9a23b30f05e8cad9c35149/output/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-
2.1/com.github.chrisbanes/PhotoView/1.3.1
/caadf2c4a254899b467496e282e7463e8726ff9f/PhotoView-1.3.1-sources.jar!/" />
</SOURCES>
</library>
</component>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

神奇发现,在Module的Gradle中没有依赖该包,这可能真是让人无语,原来一直在坑中打转哦。

个人猜测,可能是团队中其他小伙伴是引入的类库中引用了该包。

在External Libraries文件下查看,确实存在两个不同版本的PhotoView库,存在1.2.4和1.3.1版本。

4. 添加去除重复依赖的库的代码

android{
configurations {
all*.exclude module: 'PhotoView' //去除重复依赖库
}
}
  • 1
  • 2
  • 3
  • 4
  • 5

历经两三个小时的踩坑,最后大功告成,完美脱坑。

这个坑不难,就是怕找错方向,白白在坑中打转。记录下来,以免后期遇到这种奇葩问题。

资源参考

java.util.zip.ZipException: duplicate entry(重复依赖多版本的类库)的更多相关文章

  1. 我的Android进阶之旅------>Android编译错误java.util.zip.ZipException: duplicate entry的解决方法

    今天在Android Studio中把另外一个项目引入当前项目,编译的时候出现了java.util.zip.ZipException: duplicate entry错误. 错误如下所示: FAILU ...

  2. 我的Android进阶之旅------&gt;Android编译错误java.util.zip.ZipException: duplicate entry的解决方法

    今天在Android Studio中把另外一个项目引入当前项目,编译的时候出现了java.util.zip.ZipException: duplicate entry错误. 错误例如以下所看到的: F ...

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

    保存信息如上: 我在添加一个支持库的时候遇的问题,这个库com.yanzhenjie:album:1.0.5 这是由于v4包重复导致的,在网上我也找过多种解决方案   用了这种,方式 configur ...

  4. java.util.zip.ZipException: invalid entry size 解决办法

    启动maven项目时报java.util.zip.ZipException: invalid entry size (expected 7612 but got 5955 bytes) 可能是mave ...

  5. java.util.zip.ZipException: invalid entry size

    启动maven项目时报java.util.zip.ZipException: invalid entry size (expected 7612 but got 5955 bytes) 可能是mave ...

  6. 重签名提示:无法对 jar 进行签名: java.util.zip.ZipException

    使用jarsigner对APK重签名,提示:jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed ...

  7. java.util.zip.ZipException:ZIP file must have at least one entry

    1.错误描述 java.util.zip.ZipException:ZIP file must have at least one entry 2.错误原因 由于在导出文件时,要将导出的文件压缩到压缩 ...

  8. 启动TOMCAT报错 java.util.zip.ZipException: invalid LOC header (bad signature)

    报错信息大致如下所示: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect. ...

  9. [java bug记录] java.util.zip.ZipException: invalid code lengths set

    1. 描述:将代码迁移到maven工程,其中用ZipInputStream读取/src/main/resources下的zip文件时报错:“java.util.zip.ZipException: in ...

随机推荐

  1. thinkphp5+qrcode生成二维码

    1.下载二维码插件Phpqrcode,地址 https://sourceforge.net/projects/phpqrcode/files/,把下载的文件夹放到\thinkphp\vendor下 2 ...

  2. 我最喜欢用的css3之2D转换之translate用法

    CSS3 2D 转换 div { transform: rotate(30deg); -ms-transform: rotate(30deg); /* IE 9 */ -webkit-transfor ...

  3. CentOS7上搭建LDAP-PDC并且将windows 2008 R2加入LDAP-PDC域

    由于测试原因,要涉及到将windows机器加入到ldap域,所以查看各种文档进行ldap-pdc域的搭建,并成功将windows 2008r2加入到ldap-pdc域中.下面简单记录一下搭建过程 Li ...

  4. Java内部类的介绍

    在Java的面向对象编程中,由于Java并没有类似C++的多重继承,所以采用了内部类这样的方式,现在介绍几种内部类的常见情况. 公开内部类 即由public关键词修饰的内部类,内部类作为外部类的一个成 ...

  5. ActiveReports 报表应用教程 (12)---交互式报表之贯穿钻取

    在葡萄城ActiveReports报表中提供强大的数据分析能力,您可以通过图表.表格.图片.列表.波形图等控件来实现数据的贯穿钻取,在一级报表中可以通过鼠标点击来钻取更为详细的数据. 本文展示的是20 ...

  6. apktool逆向apk包

    在AndroidStudio创建so一节里创建了so,并且在java里面调用so的HelloWorld方法,编译Android Studio后生成包app-debug.apk. 在逆向apk时如果该a ...

  7. Android 开源库和项目 3

    Android 开源库和项目 Android 开源库和项目 2 1.Matisse Android 图片选择器 -- 知乎开源 github 地址:https://github.com/zhihu/M ...

  8. 学习git踩坑之路

    第一次使用git: 1.使用CentOS Linux release 7.3.1611 (Core),内核版本3.10.0-514.el7.x86_64 2.安装git: root权限运行:yum   ...

  9. qtcreator minggw 支持c++11

    pro文件添加 QMAKE_CXXFLAGS += -std=c++11

  10. Python pip 安装与使用

    pip 是 Python 包管理工具,该工具提供了对Python 包的查找.下载.安装.卸载的功能. 目前如果你在 python.org 下载最新版本的安装包,则是已经自带了该工具. Python 2 ...