Подтвердить что ты не робот

RxJavaCallAdapterFactory не может быть преобразован в Factory

Я пытаюсь использовать Retrofit 2 и RxJava после руководства в этом https://inthecheesefactory.com/blog/retrofit-2.0/en

В разделе "Интеграция RxJava с CallAdapter" объясняет, как использовать RxJava с модификацией

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("http://api.nuuneoi.com/base/")
    .addConverterFactory(GsonConverterFactory.create())
    .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
    .build();

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

Error:(63, 71) error: incompatible types: RxJavaCallAdapterFactory cannot be converted to Factory

Как я могу это исправить? Благодаря

4b9b3361

Ответ 1

Убедитесь, что вы используете один и тот же идентификатор группы и версию для основной зависимости от перенастройки, зависимости от конвертора Gson и зависимости от адаптера RxJava.

Я предполагаю, что ваш выглядит примерно так:

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

(Обратите внимание, что они используют разные номера групп и номера версий)

Они должны выглядеть одинаково:

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'

Ответ 2

В настоящее время добавление "com.squareup.retrofit: adapter-rxjava: 2.0.0" дает следующую ошибку

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

Но вместо этого добавление компиляции com.jakewharton.retrofit: retrofit2-rxjava2-adapter: 1.0.0 "делает успешную упаковку