2017-01-08 3 views
0

Я следую этому руководству https://youtu.be/YoSr5mi5kKU?t=30m52s, чтобы немного узнать о шаблоне RxJava и MVP в Android.подписаться (новый подписчик <XXX>() ...) на объекте Observer не работает Retrofit-RxJava

Но когда он прибывает Momento наблюдать объект это теперь работает:

public void getDataTMDBinteractor() { 
    Map<String, String> params = new HashMap<>(); 
    params.put("api_key", "zzzzzzzzzzzzzzzzzzzzzzzzzzz"); 
    Observable<ResponseTMDB> responseTMDBObservable = serviceTMDB.getDataTMBDService(params); 

    responseTMDBObservable.subscribeOn(Schedulers.newThread()) 
     .observeOn(AndroidSchedulers.mainThread()) 
     .subscribe(new Subscriber<ResponseTMDB>() { //Starting error from here 
      @Override 
      public void onCompleted() { 

      } 

      @Override 
      public void onError(Throwable e) { 

      } 

      @Override 
      public void onNext(ResponseTMDB responseTMDB) { 

      } 
     }); 
} 

enter image description here

Ошибка: Не удается разрешить метод 'подписаться (анонимный rx.Subscriber)'

И интерфейс службы таков:

public interface ServiceTMDB { 
    @GET("movie/popular") 
    Observable<ResponseTMDB> getDataTMBDService(@QueryMap Map<String, String> params); 
} 

Я не знаю, что именно мне не хватает или плохо.

Gradle импорт:

compile 'com.squareup.retrofit2:retrofit:2.1.0' 
compile 'com.squareup.retrofit2:converter-gson:2.1.0' 
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0' 
compile 'io.reactivex.rxjava2:rxjava:2.0.1' 
compile 'io.reactivex.rxjava2:rxandroid:2.0.1' 
compile 'com.google.code.gson:gson:2.8.0' 
+0

PD: Я ищу другие примеры RxAndroid/RxJAva, и все делают то же самое, например: http://randomdotnext.com/retrofit-rxjava/ – Shudy

ответ

2

Простая задача, вы добавляете

compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0' 

, который работает с RxJava 1.x


Но

compile 'io.reactivex.rxjava2:rxjava:2.0.1' 
compile 'io.reactivex.rxjava2:rxandroid:2.0.1' 

следует добавлять

compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0' 
+0

я Добавляю wgat, вы сказали, и я получаю это сообщение: Ошибка: (25, 13) Не удалось решить: com.squareup.retrofit2: adapter-rxjava2: 2.1.0. На данный момент выглядит так: 'compile 'com.squareup.retrofit2: retrofit: 2.1.0' compile 'com.squareup.retrofit2: converter-gson: 2.1.0' compile 'com.squareup.retrofit2: adapter-rxjava2 : 2.1.0 ' compile' io.reactivex.rxjava2: rxjava: 2.0.1 ' compile' io.reactivex.rxjava2: rxandroid: 2.0.1'' – Shudy

+0

Gah, вы правы, он утверждал, что обновляется но он застрял на RC4! Я добавил другую зависимость, вам нужно использовать '.addCallAdapterFactory (RxJava2CallAdapterFactory.create()), чтобы она работала. – EpicPandaForce

+0

https://github.com/square/retrofit/tree/master/retrofit-adapters/rxjava2 будет существовать после выхода Retrofit 2.2.0 – EpicPandaForce

Смежные вопросы