【问题标题】:ZipException: duplicate entry : com.nineoldandroidsZipException:重复条目:com.nineoldandroids
【发布时间】:2017-02-08 15:30:26
【问题描述】:

我使用它的 gradle 依赖项在我的项目中添加了 ResideMenu。 但我遇到了这个问题:

错误:任务执行失败 ':app:transformClassesWithJarMergingForDebug'.

com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目: com/nineoldandroids/animation/Animator$AnimatorListener.class

当我检查外部库时,我发现 library-2.4.0 和 liveMenu-1.6 都包含 com.nineoldandroids:

我在 stackoverflow 上遇到了几乎所有类似的问题并尝试了解决方案。谁能告诉我需要做些什么来消除这个问题。

以下是我在项目中使用的依赖项:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.jakewharton:butterknife:7.0.1'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.pnikosis:materialish-progress:1.7'
    compile 'com.loopj.android:android-async-http:1.4.9'
    compile 'com.google.code.gson:gson:2.6.2'
    compile 'com.wrapp.floatlabelededittext:library:0.0.6'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.specyci:residemenu:1.6+'
}

【问题讨论】:

  • 您应该在两个项目(library-2.4.0 和resideMenu-1.6)中创建一个错误问题,因为 Nineoldandroids 不应该包含在它们的 JAR 中,而是应该将 maven package 引用为依赖项。

标签: android exception nineoldandroids residemenu


【解决方案1】:

您必须首先将 ResideMenu 库手动添加到您的项目中。 然后从 ResideMenu 库中打开 Gradle 文件。 在依赖项上,清理编译文件树行 (dir: 'libs', include: ['* .jar']) 并替换以下行: 编译'com.nineoldandroids:library:2.4.0'

【讨论】:

    【解决方案2】:

    用另一个库添加排除命令解决了这个问题:

    compile ('com.wrapp.floatlabelededittext:library:0.0.6'){
            exclude group: 'com.nineoldandroids', module: 'library'    }
        compile ('com.specyci:residemenu:1.6+') {
            exclude group: 'com.nineoldandroids', module: 'library'    }
    

    【讨论】:

      【解决方案3】:

      您可以从您的依赖项中排除 Nineoldandroids。即:

      更改如下:

      compile 'com.specyci:residemenu:1.6+'
      

      有了这个:

      compile ('com.specyci:residemenu:1.6+') {
          exclude group: 'com.nineoldandroids', module: 'library'
      }
      

      注意:要列出所有子依赖树,请使用gradle dependenciesgradlew dependencies 命令。然后,您可以获得要排除的库的正确组和模块名称。

      【讨论】:

      • 你应该使用相同版本的 Nineoldandroids 然后应用上面的行。
      猜你喜欢
      • 2023-03-27
      • 1970-01-01
      • 2018-03-08
      • 2017-02-18
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 2016-05-31
      • 2017-12-28
      相关资源
      最近更新 更多