美文网首页
Duplicate zip entry [classes.jar

Duplicate zip entry [classes.jar

作者: 洛洛_808b | 来源:发表于2020-08-22 13:30 被阅读0次

    运行一个app module 报了下面的错误

    Caused by: java.io.IOException: Can't write [D:\WorkingFileJuphoon\sdkcode\Android\TestAgent

    \build\intermediates\multi-dex\debug\componentClasses.jar]

    (Can't read [C:\Users\ac\.gradle\caches\transforms-1\files-1.1\versionedparcelable-28.0.0

    .aar\c295e2ca97948600928f9b11bb7e99cf\jars\classes.jar(;;;;;;**.class)]

    (Duplicate zip entry [classes.jar:androidx/versionedparcelable/CustomVersionedParcelable.class]))

    Can't read [C:\Users\ac\.gradle\caches\transforms-1\files-1.1\versionedparcelable-28.0.0.aar\c295e2

    ca97948600928f9b11bb7e99cf\jars\classes.jar(;;;;;;**.class)]

    Caused by: java.io.IOException:

    Duplicate zip entry[classes.jar:androidx/versionedparcelable/CustomVersionedParcelable.class]

    classes.jar 说明是导入的 jar 包中有资源冲突,CustomVersionedParcelable.class 这个类在导入的jar包中冲突了,首先我们需要找到导致冲突的 jar 包

    第一步:在 AS 中双击 Shift 搜索 CustomVersionedParcelable.class 如下图

    重点关注后面的jar包信息:Gradle:com.android.support:versionedparcelable:28.0.0@aar(classes.jar)

    第二步:在我们自己的项目工程中找到这个jar包

    先把项目切换到Project,点击 External Libraries,找到上面的jar包,如下图

    可以看到果然存在 CustomVersionedParcelable.class 这个类,它和另外一个非本工程的jar包发生了冲突,如果你勾选Include non-project items会搜索出两个 jar包,都包含这个类

    第三步:找到我们运行的那个app module里所依赖的所有jar包,看看冲突的那个jar包的上下依赖关系,结合build.gradle 中 dependencies 的依赖配置进行修改,在这一步中我们需要打开AS的Terminal终端执行一个指令:gradlew :TestAgent:dependencies  获取所有jar包,然后在终端通过Ctr+F 搜索  com.android.support:versionedparcelable 如下图

    我运行的module名称 是 TestAgent,它依赖了另外两个 module:agent-aar 和 cloud,我们可以看一下这三个module的gradle配置信息首先是TestAgent

    TestAgent

    解决办法:可以看到它导入了 com.google.android.material:material:1.1.0 这个依赖,正是由于这个依赖中的包也使用到了 com.android.support:versionedparcelable 这个包,所以会导致冲突,我们可以通过添加如下语句来修改 gralde 配置: 

    exclude  group: 'androidx.versionedparcelable',module :'versionedparcelable'    修改后的配置文件如下图所示

    这里需要注意的是,有可能不止一个包会引用 到 com.android.support:versionedparcelable 这个包,我第一次修改了上面的配置之后再次运行依然还是报原来的错误,直到我继续修改了另外两个module的配置之后才彻底修正这个错误

    agent-arr cloud

    只有把所有引用到 com.android.support:versionedparcelable 的地方全部移除掉才行,本文参考了以下两篇文章,参考文章链接:

    https://www.jianshu.com/p/cfcc5b630e1b

    https://blog.csdn.net/cx1229/article/details/52786168

    完,欢迎批评指正

    相关文章

      网友评论

          本文标题:Duplicate zip entry [classes.jar

          本文链接:https://www.haomeiwen.com/subject/witgxxtx.html