没有类型变量R的实例,以便Observable符合Observable?

时间:2017-06-30 07:09:33

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

我是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一个接一个地调用。

我试图添加编译&#34; com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0&#34;但也存在错误。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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 ...