nineoldandroids-2.4.0.jar冲突解决方式

来源:互联网 发布:网络用语 胡萝卜 编辑:程序博客网 时间:2024/06/06 06:34

最近我还有朋友都遇到了这类的问题,内心斗争好久,战胜了懒癌写了这篇,给自己,也给遇到相同问题的小伙伴记录一下解决方式。

编译报错:

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Translation has been interrupted

打包时报错:(这里只是一个示例,你的可能是别的问题,针对最后一句话来判断是哪个包出问题了)

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/nineoldandroids/view/ViewHelper.class

错误原因: 依赖版本冲突(项目本身和应用的modle里有冲突的jar)。


解决方式:

1.不删除冲突jar的解决方式:

因为公司里这个冲突的jar可能还有用不能随意删除,所以我采用了这种方式,这里的com.nineoldandroids你针对自己的打包提示来填写

build.gradle 对应位置里的加入如下代码

android { configurations {      all*.exclude group: 'com.nineoldandroids', module: 'library' //去除重复依赖库    }}

2.删除jar的解决方式:

针对打包时报的错误,在你的libs里找到对应的jar删除后可解决问题,但可能会引起其他的的错误,不是很建议。

3.还有一种方式针对compile 引入的方式,可通过下边的方式来解决,例:V4包冲突

 compile('io.socket:socket.io-client:0.8.3') {        // excluding org.json which is provided by Android        exclude group: 'com.android.support', module: 'support-v4'    }

还有一点,记得最后clean下项目再编译或者打包。

解决思路来自stackoverflow.com 参考文档 gradle doc

最后发现一个写的更详细的博客

哪里写的有问题,欢迎指点。

原创粉丝点击