duplicate entry: org/apache/commons/codec/DecoderException.class编译不过问题解决

duplicate entry: org/apache/commons/codec/DecoderException.class编译不过问题解决

Bug问题描述:

  • compileSdkVersion 23
  • buildToolsVersion “23.0.3”
  • minSdkVersion 15
  • targetSdkVersion 19
  • 程序在android studio自带的虚拟机上可以运行,虚拟机 sdk23
  • 测试机coolpad5950 sdk 16 编译会失败无法生成apk
  • 在虚拟机上跑成功后的apk直接装到真机上无法启动

解决过程

踩坑

Error:Execution failed for task ‘:app:transformClassesWithJarMergingForDebug’.
com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/ogaclejapan/smarttablayout/utils/BuildConfig.class

最开始报的是上面这个错误, Smarttablayou是一个三方项目,我用它来实现顶部的tab。

顶部tab

compile’com.ogaclejapan.smarttablayout:library:1.6.1@aar’
compile ‘com.ogaclejapan.smarttablayout:utils-v4:1.6.1@aar’
//compile ‘com.ogaclejapan.smarttablayout:utils-v13:1.6.1@aar’

这个错误已经解决,原因是v13和v4冲突了,注掉一个就好了

真正的bug

Error:Execution failed for task ‘:app:transformClassesWithJarMergingForDebug’.
com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entryorg/apache/commons/codec/DecoderException.class

前面都一样后面换了一个类而已,所以搜出来的解决app:transformClassesWithJarMergingForDebug’问题的,这个问题大概是说你引用的多个三方项目里又同时引用了别的。而解决冲突方法就类似于下面这种方式

compile (group: ‘com.zendesk’, name: ‘sdk’, version: ‘1.0.0.1’){
exclude group: ‘com.squareup.picasso’
}

然后各种试,最后甚至删掉了这个项目还是会报错,很开心,可以排除这个三方的嫌疑了,后来注意力转移到出问题的class来自于apache的包,之前处理过一个问题就是,从某一个版本JDK以后,默认没有org.apache.http包的引用,需要手动导入,而eclipse推荐的是导入jar包,android studio则需要在gradle的配置中加一句话,但是这个坑很早以前就已经才过了,抱着试试看的态度,查看了一下就是这个问题。用eclipse的方式在studio中进行了处理。修改方式为删掉libs下的jar包,然后再build.gradle(Module:app)下加:

useLibrary org.apache.http.legacy

疑问

第一,为什么模拟器不会出现这个问题,第二为什么这个问题解决过一次,他又会自己出现(有svn但是期间没有同步过)。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值