Skip to content Skip to sidebar Skip to footer

Illegalargumentexception: Could Not Locate Call Adapter For Rx.observable Rxjava, Retrofit2

I am getting the above error while calling the rest api. I am using both retrofit2 and RxJava. ServiceFactory.java public class ServiceFactory { public static T createRet

Solution 1:

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:

Retrofitretrofit=newRetrofit.Builder()
    .baseUrl(endpoint)
    .addConverterFactory(GsonConverterFactory.create())
    .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
    .build();

Updated

RxJavaCallAdapterFactory was renamed to RxJava2CallAdapterFactory. Changed the snipped above.

Solution 2:

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

Solution 3:

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();

Solution 4:

From the said Github project page:

Blockquote This is now DEPRECATED! Retrofit 2.2 and newer have a first-party call adapter for RxJava 2: https://github.com/square/retrofit/tree/master/retrofit-adapters/rxjava2

now you just need to include in your app/build.gradle file:

compile'com.squareup.retrofit2:adapter-rxjava2:latest.version'

Solution 5:

In my case, it was enough to replace

.addCallAdapterFactory(RxJavaCallAdapterFactory.create())

with

.addCallAdapterFactory(RxJava2CallAdapterFactory.create())

Post a Comment for "Illegalargumentexception: Could Not Locate Call Adapter For Rx.observable Rxjava, Retrofit2"