同步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. [转]sqlserver转换为Mysql工具使用

    https://files.cnblogs.com/files/miantiaoandrew/mss2sql_v5-3.zip 1.首先下载工具,链接如上 2.解压出来,运行mss2sql.exe 3 ...

  2. Django Rest framework 之 分页

    RESTful 规范 django rest framework 之 认证(一) django rest framework 之 权限(二) django rest framework 之 节流(三) ...

  3. CentOS 7开启防火墙端口

    1.开启防火墙 systemctl start firewalld 2.添加 firewall-cmd --zone=public --add-port=80/tcp --permanent 3.重新 ...

  4. iframe 页面刷新

    1.点击刷新 [1].html页面代码 <a href="javascript:;" title="刷新当前页" id="Refresh&quo ...

  5. CSS十大选择器

    CSS十大选择器:   1.id选择器 # 2.class选择器 句号 . 3.标签选择器 标签名称 4.相邻选择器 加号 + 5.后代选择器 空格 6.子元素选择器 大于号 > 7.多元素  ...

  6. cf97D. Robot in Basement(模拟 bitset)

    题意 题目链接 Sol 接下来我的实现方式和论文里不太一样 然后用bitset优化,上下走分别对应着右移/左移m位,左右走对应着右移/左移1位 我们可以直接预处理出能走的格子和不能走的格子,每次走的时 ...

  7. onlyoffice文档协作的权限开发,利用casbin和golang语言

    登录用户,对于已经进行了权限设置的文档,将根据权限数据库,比对用户名,当与用户有关时,就显示相对应的权限,当都与登录用户无关时,则显示拒绝访问: 对于未登录用户,已经设置了权限的文档,都将显示拒绝访问 ...

  8. ListView 添加 HeaderView常见错误

    1.addHeaderView异常: 最近在做通讯录开发时使用ListView,发现一个奇怪的问题:当添加一个ImageView 作为HeaderView时,发现ImageView长宽始终是1:1的大 ...

  9. matlab练习程序(单层感知器)

    clear all; close all; clc; %生成两组已标记数据 randn(); mu1=[ ]; S1=[ ; ; 0.4]; P1=mvnrnd(mu1,S1,); mu2=[ ]; ...

  10. JavaScript语法详解:运算符和表达式

    本文首发于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 我们在上一篇文章里讲到了JS中变量的概念,本篇文章讲一下运算符和表达式. 比 ...