【问题标题】:No Instance of type variable R exist so that Observable conforms to Observable?不存在类型变量 R 的实例,因此 Observable 符合 Observable?
【发布时间】:2017-12-04 01:38:34
【问题描述】:

我是 Rx android 的新手。当我尝试调用时

Observable.from(imagesMulty).map(image -> printImage(image)).subscribe();
public  void printImage(Image image)
    {
Subscription addImage;  


addImage = retrofit.create(Restapi.class).addImage(image)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber<Response<SlideResponse>>() {
                    @Override
                    public final void onCompleted() {
                        dismissProgress();

                }

                @Override
                public final void onError(Throwable e) {

                    e.printStackTrace();
                    dismissProgress();

                }

                @Override
                public void onNext(Response<SlideResponse> apiResponse) {
                    dismissProgress();
                    if (apiResponse.code() == 201) {


                    }

                }


            });
    subscriptions.add(addSlide);
    }

它显示不存在类型变量 R 的实例,因此 Observable 符合 Observable。让我知道这个错误是什么以及如何解决。我的要求是让 api 一个接一个地调用。

我也尝试添加 compile "com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0" 但仍然存在错误。

【问题讨论】:

    标签: java android rx-java retrofit2 rx-android


    【解决方案1】:

    你可以试试这个例子。这可能有助于解决您的问题 https://github.com/dustin-graham/RxAndroid-Sample

    【讨论】:

      【解决方案2】:

      RxJava2 不允许你使用Observable.from() 函数。使用com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0RxJava。 (版本冲突)

      最好的实现应该是这样的(Rxjava2

      Disposable subscription;
      subscription = Observable.just(imagesMulty)
                  .subscribeOn(Schedulers.io())
                  .observeOn(AndroidSchedulers.mainThread())
                  .subscribe(new Consumer<String>() {
                      @Override
                      public void accept(@NonNull String s) throws Exception {
                          // do retrofit stuff
                      }
                  }, new Consumer<Throwable>() {
                      @Override
                      public void accept(@NonNull Throwable throwable) throws Exception {
                          throwable.printStackTrace();
                      }
                  });
      subscription.dispose(); // Call in onDestroy() or onPause()
      

      如果您想将改造内容与map 运算符组合或压缩,请考虑使用zipconcatcombinelatest ...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-16
        • 2022-10-18
        • 1970-01-01
        • 2020-11-04
        • 2017-04-22
        • 1970-01-01
        • 2020-07-13
        • 1970-01-01
        相关资源
        最近更新 更多