&燃气轮机;com.android.build.api.transform.TransformException:java.util.zip.zipeException:重复条目:org/apache/commons/collections/ArrayStack.class
在android studio上运行android应用程序时,我遇到如下异常:&燃气轮机;com.android.build.api.transform.TransformException:java.util.zip.zipeException:重复条目:org/apache/commons/collections/ArrayStack.class,java,android,gradle,Java,Android,Gradle,在android studio上运行android应用程序时,我遇到如下异常: com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/apache/commons/collections/ArrayStack.class 并找到位于项目外部库中的commons-beanutils-1.8.0.jar和commons-collections-3.2.
com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/apache/commons/collections/ArrayStack.class
并找到位于项目外部库中的commons-beanutils-1.8.0.jar和commons-collections-3.2.1.jar,它们都包含相同的类(org/apache/commons/collections/ArrayStack.class)
我不知道为什么这里和我的build.gradle中包含这两个JAR,如下所示:
`apply plugin: java
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
tasks.withType(JavaCompile){
options.encoding="UTF-8"
}
repositories {
mavenCentral()
jcenter()
mavenLocal()
}
dependencies {
compile ('io.netty:netty-all:5.0.0.Alpha2')
compile ('org.springframework:spring-core:4.2.4.RELEASE')
compile ('org.springframework:spring-webmvc:4.2.4.RELEASE')
compile ('org.springframework:spring-jdbc:4.2.4.RELEASE')
compile ('org.springframework:spring-test:4.2.4.RELEASE')
compile ('org.springframework:spring-context:4.2.4.RELEASE')
compile ('org.springframework.data:spring-data-mongodb:1.8.2.RELEASE')
compile ('org.springframework.security:spring-security-core:4.0.3.RELEASE')
compile ('org.springframework.security:spring-security-web:4.0.3.RELEASE')
compile ('javax.servlet:javax.servlet-api:3.1.0')
compile ('org.mybatis:mybatis:3.3.0')
compile ('org.mybatis:mybatis-spring:1.2.3')
compile ('net.sf.json-lib:json-lib:2.4:jdk15')
compile ('c3p0:c3p0:0.9.1.2')
compile ('com.google.protobuf:protobuf-java:2.6.1')
compile ('mysql:mysql-connector-java:5.1.38')
compile ('org.mongodb:mongo-java-driver:3.2.0')
compile ('org.slf4j:slf4j-log4j12:1.7.2')
compile ('org.jasig.cas.client:cas-client-core:3.4.1')
compile ('commons-httpclient:commons-httpclient:3.1')
compile group: 'com.alibaba', name:'fastjson', version:'1.2.4'
testCompile ( 'junit:junit:4.12')
}`
如何解决此异常,以及为什么下载并位于外部库中的commons-beanutils-1.8.0.jar和commons-collection-3.2.1.jar?提前感谢您的帮助。如果没有您的工作区,很难说哪个依赖项与commons-beanutils-1.8.0.jar和commons-collection-3.2.1.jar相关,问题在于
commons-beanutils-1.8.0.jar
已更新。描述详细信息
BeanUtils的1.7.x和1.8.x版本分发了三个罐子:
commons-beanutils.jar-包含所有内容
commons-beanutils-core.jar-排除Bean集合类
commons-beanutils-bean-collections.jar-仅bean集合类
main commons-beanutils.jar对commons集合有一个可选的依赖项
当您看到这种情况时,我建议您更新以使用commons-beanutils-1.9.0
查找使用commons beanutils和commons集合的库。您可以访问以搜索项目中使用的所有依赖项。e、 例如,您可以在详细描述下找到编译依赖项
希望这能帮助你
更新: 正如@EpicPandaForce所说,使用
gradledependencies
是更简单的方法。多亏了EpicPandaForce。
我只是运行了与问题相同的依赖项,得到了以下可以回答这个问题的答案
+--- net.sf.json-lib:json-lib:2.4
| +--- commons-beanutils:commons-beanutils:1.8.0
| | \--- commons-logging:commons-logging:1.1.1 -> 1.2
| +--- commons-collections:commons-collections:3.2.1
| +--- commons-lang:commons-lang:2.5
| +--- commons-logging:commons-logging:1.1.1 -> 1.2
| \--- net.sf.ezmorph:ezmorph:1.0.6
| \--- commons-lang:commons-lang:2.3 -> 2.5
net.sf.json lib
这就是这两个库的来源。错误:
错误:任务“:app:transformClassesWithJarMergingForDebug”的执行失败。
com.android.build.api.transform.TransformException:java.util.zip.zipeException:重复条目:org/hamcrest/BaseDescription.class
渐变文件依赖项:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile files ('jackson-annotations-2.2.2.jar')
compile files ('jackson-core-2.2.2.jar')
compile files ('jackson-databind-2.2.2.jar')
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
compile group: 'cz.msebera.android' , name: 'httpclient', version: '4.4.1.1'
compile 'com.google.android.gms:play-services-maps:7.8.0'
compile 'com.google.android.gms:play-services-location:7.8.0'
compile 'com.github.orangegangsters:swipy:1.2.2@aar'
compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
transitive = true;
}
compile('com.crashlytics.sdk.android:crashlytics-ndk:1.1.2@aar') {
transitive = true;
}
}
我认为使用
gradle-dependencies
或gradle:dependencies
查找谁在使用commons集合是一个更好的解决方案。而不是手动在maven存储库中查看它。