AndroidStudio 工程jar包重复引入报错

AndroidStudio 工程jar包重复引入报错

十月 27, 2017

app:transformClassesWithJarMergingForDebug


工程中,如果我们叫A,要引用的两个三方库分别叫B和C。

其中B包含了若干小jar包,比如其中有一个叫d,C中也包含了同样的jar包d。

那么我们直接应用这两个库的时候,编译过程会报错

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

那么我们只需要在其中库中「去掉」jar包的引用,或者说过滤掉。

可以切换到「Project」视图, 查看比较两者间有什么库是一样的名字。这里我举了个例子:

rxjava包冲突

在MANIFEST.MF文件中,找到要过滤的包名: io.reactivex.java

Bundle-SymbolicName的字段

在gradle文件中,引用工程后面添加过滤的包名。这里我将rx有关的都过滤了,(使用的是AS3.0有了新的关键字implementation具体看这里

添加group

1
2
3
4
5
6
compile('cn.bmob.android:bmob-sdk:3.5.5') {
exclude group: 'io.reactivex'
}
compile('com.kymjs.rxvolley:rxvolley:1.1.4') {
exclude group: 'io.reactivex'
}

重新编译一下,就可以正常运行了。