Могу ли я использовать RxAndroidBle и RxJava2 в одном проекте?

У меня есть приложение для Android, основанное на RxAndroid (на основе RxJava2). Я также добавил зависимость RxAdnroidBle, которая по-прежнему использует RxJava1.

Во время компиляции у меня была следующая ошибка:

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 в качестве зависимостей может вызвать какие-либо проблемы?

Спасибо,


person Medvednic    schedule 19.07.2017    source источник


Ответы (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

person Vladimir Berezkin    schedule 19.07.2017
comment
Можете ли вы уточнить? - person Medvednic; 19.07.2017
comment
Спасибо! не могу поверить, что я пропустил эту строку. - person Medvednic; 19.07.2017