在RestClient中,RxJava与Android中的Observable不兼容

时间:2017-06-29 07:20:02

标签: java android gradle rx-java

获取 java.lang.IllegalArgumentException:当我使用带有 Observable的RestClient (RxJava)时,无法为方法ApiInterface.login 创建rx.Observable的调用适配器

    RestClient.getApiInterface().login(commonParams.getMap())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Observer<PatientData>() {
                @Override
                public final void onCompleted() {
                    // do nothing
                }

                @Override
                public final void onError(final Throwable e) {

                }

                @Override
                public final void onNext(final PatientData response) {                
                }
            });

2 个答案:

答案 0 :(得分:0)

谢谢。是的,在这段代码中我错过了 .subscribeOn(Schedulers.io())

此外,错误是因为 .addCallAdapterFactory(RxJavaCallAdapterFactory.create()),同时创建了Retrofit.Builder.create()&amp;为了在RxJava(而不是RxJava2)中包含 RxJavaCallAdapterFactory ,这种依赖有效:编译'com.squareup.retrofit2:adapter-rxjava:2.1.0'

答案 1 :(得分:-1)

添加以下方法调用

.subscribeOn(Schedulers.io())

有时候不给这种方法打电话也会引起问题。