IllegalArgumentException: Could not locate call adapter for rx.Observable RxJava, Retrofit2

Be sure to add implementation 'com.squareup.retrofit2:adapter-rxjava2:2.4.0' or whatever version you are using to your dependencies, and then configure retrofit with that converter:

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl(endpoint)
    .addConverterFactory(GsonConverterFactory.create())
    .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
    .build();

Updated

RxJavaCallAdapterFactory was renamed to RxJava2CallAdapterFactory. Changed the snipped above.


For RxJava2 Use compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'

.addCallAdapterFactory(RxJava2CallAdapterFactory.create())

For more information on usage https://github.com/JakeWharton/retrofit2-rxjava2-adapter


you should have to use all Rx dependency of latest version , here i am using version 2 (like rxjava2)

implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'

implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'io.reactivex.rxjava2:rxjava:2.1.9'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'

enter image description here

And add one more thing :

addCallAdapterFactory(RxJava2CallAdapterFactory.create())

in Retrofit Api client like :

retrofit = new Retrofit.Builder()
                    .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                    .addConverterFactory(GsonConverterFactory.create())
                    .baseUrl(BASE_URL)
                    .build();