如何解决APK META-INF/rxjava.properties中复制的重复文件

Dan*_*cia 23 android rx-java android-gradle-plugin rx-android

我在我的android应用程序上使用rxjava和rxvolley.当我尝试运行它时,我收到此错误

Execution failed for task ':testapp:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/rxjava.properties
            File1: C:\Users\Daniel\.gradle\caches\modules-2\files-2.1\io.reactivex\rxjava\1.1.0\748f0546d5c3c27f1aef07270ffea0c45f0c42a4\rxjava-1.1.0.jar
            File2: C:\Users\Daniel\.gradle\caches\modules-2\files-2.1\io.reactivex.rxjava2\rxjava\2.0.3\d2f725668bd22e21170381b23f8fbdf72c69d886\rxjava-2.0.3.jar
Run Code Online (Sandbox Code Playgroud)

我有这样的exclude.gradle文件

android {
packagingOptions {
    exclude 'META-INF/DEPENDENCIES.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/rxjava.properties'
    exclude 'META-INF/rxjava.PROPERTIES'
    exclude 'META-INF/RXJAVA.properties'
    exclude 'META-INF/RXJAVA.PROPERTIES'
    exclude 'META-INF/rxjava'
    exclude 'META-INF/RXJAVA'
}

lintOptions {
    abortOnError false
}
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Jul*_*nez 85

我有同样的问题.我修复它的方法是添加packagingOptionsin app gradle,如重复文件rxjava.properties中所述

android {

    defaultConfig {
    }
    buildTypes {
    }
    packagingOptions{
        exclude 'META-INF/rxjava.properties'
    }
}
Run Code Online (Sandbox Code Playgroud)


JoC*_*uTo 5

我遇到过同样的问题。
就我而言,我正在使用,Retrofit2但我认为问题出在rx libraries

这是build.gradle (module:app)我正在使用的,并且在我的情况下有效。

compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.2'

compile 'io.reactivex:rxandroid:1.1.0' //<-use this
compile 'io.reactivex:rxjava:1.1.3'    //<-use this

compile 'com.squareup.okhttp3:okhttp:3.1.2'
compile 'com.squareup.okhttp3:logging-interceptor:3.0.1'
Run Code Online (Sandbox Code Playgroud)

无论如何,您可以在顶部看到一个更好的解决方案

  • 无需使用@JuliánMartínez解决方案,因为它是JakeWharton本人推荐的 (3认同)