【问题标题】:Cannot resolve method 'subscribe(io.reactivex.rxjava3.core.SingleObserver<okhttp3.ResponseBody>)'无法解析方法“订阅(io.reactivex.rxjava3.core.SingleObserver<okhttp3.ResponseBody>)”
【发布时间】: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


【解决方案1】:

我解决了这个问题:从界面将其从 Observable&lt; ResponseBody &gt; 更改为 Single&lt; ResponseBody &gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 2011-08-07
    • 1970-01-01
    • 2019-10-09
    • 1970-01-01
    相关资源
    最近更新 更多