Android问题:com.android.builder.packaging.DuplicateFileException

今天在写Android关于RxJava引用的时候,出了一个问题:

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

com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/rxjava.properties
File1: C:\Users\Admin.gradle\caches\modules-2\files-2.1\io.reactivex\rxjava\1.2.7\138872ff3173fb7bee8b1d6303d6edb57d76599\rxjava-1.2.7.jar
File2: C:\Users\Admin.gradle\caches\modules-2\files-2.1\io.reactivex.rxjava2\rxjava\2.0.0\5151c737c01616c372c3d00ab145868ede10e826\rxjava-2.0.0.jar

大致知道是jar包引用的问题,由于之前引用过 RxJava1.x的jar和 RxJava2.x的jar,于是初步猜测是后来Rxjava2.x的jar没有删除干净,于是查看app依赖:
Android问题:com.android.builder.packaging.DuplicateFileException_第1张图片
Android问题:com.android.builder.packaging.DuplicateFileException_第2张图片
里面并没有RxJava2.x的引用,于是就各种查找,最后终于找到解决方案
只需要在 app的gradle中加一下配置:

packagingOptions{
exclude 'META-INF/rxjava.properties'
}

具体添加的位置是:

android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
//...
}
buildTypes {
release {
//...
}
}
packagingOptions{
exclude 'META-INF/rxjava.properties'
}
}

ok,希望给遇到相同问题的同学一个指引,谢谢诶!

你可能感兴趣的:(Android,android,Rxjava-jar)