ZipException: 重复条目:com.nineoldandroids (注:这是一个提问标题,无需回答)

4

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

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/nineoldandroids/animation/Animator$AnimatorListener.class

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

enter image description here

我已经查看了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)中创建一个bug问题,因为nineoldandroids不应该包含在它们的JAR文件中,而是应该将maven package作为依赖引用。 - Robert
3个回答

4
你可以将nineoldandroids从依赖项中排除掉,例如:
更改以下代码:
compile 'com.specyci:residemenu:1.6+'

使用这个:

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

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


你应该使用相同版本的nineoldandroids,然后应用上述行。 - PRIYA PARASHAR

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'    }

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接