0

我有一个依赖于 RxAndroid(基于 RxJava2)的 Android 应用程序。我还添加了仍然使用 RxJava1的 RxAdnroidBle 依赖项。

在编译过程中,我遇到了以下错误:

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: /home/eddy/.gradle/caches/modules-2/files-2.1/io.reactivex.rxjava2/rxjava/2.1.0/2fdf84dedcaaeabb9d70cde9dbb8aad4eccb80a1/rxjava-2.1.0.jar
    File2: /home/eddy/.gradle/caches/modules-2/files-2.1/io.reactivex/rxjava/1.3.0/af000bec2036a2a9d07197c4b03b8966bfc60b03/rxjava-1.3.0.jar 

通过将以下块添加到build.gradle

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

我似乎一切正常。但只是为了确保 - 将 RxJava 1 和 2 库作为依赖项可能会导致任何问题?

谢谢,

4

1 回答 1

1

它们存在于不同的包中,因此您可以一起使用它们

来自官方文档

为了允许同时使用 RxJava 1.x 和 RxJava 2.x,RxJava 2.x 位于 maven 坐标 io.reactivex.rxjava2:rxjava:2.xy 下,并且可以在 io.reactivex 下访问类

在这里我们可以看到它们可以在一个项目中并排

https://github.com/ReactiveX/RxJava/wiki/What%27s-different-in-2.0

于 2017-07-19T14:13:17.650 回答