【发布时间】:2022-01-25 09:50:27
【问题描述】:
SingleObserver < ResponseBody > singleObserver = new SingleObserver < ResponseBody > () {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
Log.w("ABC", "S");
}
@Override
public void onSuccess(@io.reactivex.rxjava3.annotations.NonNull ResponseBody responseBody) {
try {
Log.w("ABC", responseBody.string());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
Log.w("ABC", e.getMessage());
}
};
RetrofitInterface retrofitInterface = new Retrofit.Builder().baseUrl(Constants.BASE_URL).addCallAdapterFactory(RxJava3CallAdapterFactory.create()).build().create(RetrofitInterface.class);
retrofitInterface.getMainData(1).observeOn(AndroidSchedulers.mainThread()).subscribeOn(Schedulers.io()).subscribe(singleObserver); //The Error Here
我正在尝试将 SingleObserver 与 subscribe 方法一起使用,但出现此错误。
错误
Cannot resolve method 'subscribe(io.reactivex.rxjava3.core.SingleObserver<okhttp3.ResponseBody>)'
【问题讨论】:
-
RetrofitInterface的定义是什么。我的猜测是你在同一个项目中混合了 RxJava 2 和 3。 -
@akarnokd 我解决了这个问题,从界面将其从 Observable
更改为 Single ,谢谢 -
如果您解决了问题,请将其作为答案发布,而不是在 cmets 中
-
@MartinCR 完成。
标签: android retrofit retrofit2 rx-java2 rx-android