我有一个依赖于RxAndroid的Android应用程序(基于RxJava2)。 我还添加了仍然使用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添加以下块来解决这个build.gradle :
packagingOptions { exclude 'META-INF/rxjava.properties' }我似乎一切正常。 但只是为了确保 - 将RxJava 1和2库作为依赖项可能会导致任何问题?
谢谢,
I have an Android application which relies on RxAndroid (based on RxJava2). I've also added the RxAdnroidBle dependency which still uses RxJava1.
During compilation I had the following 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: /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.jarWhich I solved by adding the following block to build.gradle:
packagingOptions { exclude 'META-INF/rxjava.properties' }I seems that everything works fine. But just to make sure - having both RxJava 1 & 2 libraries as dependencies may cause any problems?
Thanks,
最满意答案
它们生活在不同的包装中,因此您可以一起使用它们
来自官方文件
为了允许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
They live in different packages, so you can use them together
From oficial documentation
To allow having RxJava 1.x and RxJava 2.x side-by-side, RxJava 2.x is under the maven coordinates io.reactivex.rxjava2:rxjava:2.x.y and classes are accessible below io.reactivex
Here we can see they can be side-by-side in one project
https://github.com/ReactiveX/RxJava/wiki/What%27s-different-in-2.0
更多推荐
发布评论