RxJava 1和RxJava 2在同一个项目中

时间:2017-06-28 00:53:19

标签: android rx-java rx-java2

我们的项目使用RxJava 1:

compile 'io.reactivex:rxjava:1.1.6'

我们使用的库在内部使用RxJava 2:

compile 'io.reactivex.rxjava2:rxjava:2.0.9'

当我./gradlew assembleDebug时,我收到此错误:

com.android.build.api.transform.TransformException:com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/rxjava.properties
      File1: /Users/darklord/.gradle/caches/modules-2/files-2.1/io.reactivex/rxjava/1.1.6/2586312cd2b8a511e4c6236736f5a039fc0f2273/rxjava-1.1.6.jar
      File2: /Users/darklord/.gradle/caches/modules-2/files-2.1/io.reactivex.rxjava2/rxjava/2.0.9/a5aad74623ade11162dd53cdf0645a51b12221a0/rxjava-2.0.9.jar

我认为可以说RxJava 1和RxJava 2可以同时使用,为什么我仍然会收到此错误?

1 个答案:

答案 0 :(得分:4)

运行时不需要rxjava.properties文件。

因此,您可以通过在app / build.gradle文件中设置packagingOptions来打包Android应用程序时排除该文件,如下所示。

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