Не удалось создать адаптер вызова для io.reactivex.Single

Я хочу подключиться к серверу с модернизацией, и rxjava. Он работает, когда я использовал вызов, и все хорошо. Но когда я пытаюсь использовать rxjava, возникают проблемы. текст ошибки:

Не удалось найти адаптер вызова для io.reactivex.Single.

в build.gradle я внедрил модифицированный адаптер. Но я не знаю, в чем проблема. это мой градус:

implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'io.reactivex.rxjava2:rxjava:2.2.8'
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.squareup.retrofit2:adapter-rxjava:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation "android.arch.persistence.room:runtime:1.1.1"
annotationProcessor "android.arch.persistence.room:compiler:1.1.1"

API-код клиента:

public class ApiClient {
public static final String BASE_URL = "http://192.168.1.100/digikala/";
private static Retrofit retrofit=null;
public static Retrofit getClient(){
    if (retrofit==null){
        retrofit=new Retrofit.Builder()
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .baseUrl(BASE_URL)
                .build();
    }

    return  retrofit;
}

API сервисный код:

public interface ApiService {

   @GET("readamazing.php")
   Single<List<Product>> getSingleProducts();
 }

код основной деятельности:

ApiService apiService=ApiClient.getClient().create(ApiService.class);
apiService.getSingleProducts().subscribeOn(Schedulers.newThread())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(new SingleObserver<List<Product>>() {
        @Override
        public void onSubscribe(Disposable d) {

        }

        @Override
        public void onSuccess(List<Product> products) {
            Log.i("LOG", "onSuccess: "+products.toString());
        }

        @Override
        public void onError(Throwable e) {
            Log.i("LOG", "onSuccess: "+e.toString());
        }
    });

добавьте журнал ошибок к вашему вопросу.

Morteza Jalambadani 28.05.2019 12:42

Не удалось найти адаптер вызова для io.reactivex.Single.

john 28.05.2019 12:46
0
2
1 631
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте RxJava2CallAdapterFactoryвместоRxJavaCallAdapterFactory, так как используется RxJava2.

.addCallAdapterFactory(RxJava2CallAdapterFactory.create())

к Retrofit.Builder().

Другие вопросы по теме