Nullpointer in rxjava



我收到来自 OCR 的消息,并像这样通过rxjava发布它。

Disposable disposable = Observable.just(OCR())
.observeOn(AndroidSchedulers.MainThread())
.subscribeOn(schedulers.newThread())
.flatMap(new Function<Rsult,ItemsBean>(){
............
})
.subscribe(new Consumer(){
............
})

OCR(( 本身从服务器获取消息,返回类型是一个实体,代码在这里

public static Result OCR(){
ImageClient imageClient = new ImageClient();
String result = imageClient.OCR(**,**,**);//network
Result resultEntity = gson.fromJson(result);
return resultEntity;

}

但它是空的,所以我尝试使用它来代替,代码:

Disposable disposable = Observable.just(imageClient.OCR(**,**,**))
.observeOn(AndroidSchedulers.MainThread())
.subscribeOn(schedulers.newThread())
.map(new Function(){
............此处省略
})
.flatMap(new Function<Rsult,ItemsBean>(){
............此处省略
})
.subscribe(new Consumer(){
............此处省略
})

并在主线程中抛出网络异常,不知道正确的使用方法是什么,谢谢。

使用Observable.just将在参数传递时执行参数。 并且由于imageClient.OCR(**,**,**)对网络进行调用。你得到的是例外。

为了防止这种情况,您必须封装执行,然后订阅:

实现此目的的一种方法是:

Observable.fromCallable { imageClient.OCR(**,**,**) }

另请参阅创建可观察量文档

相关内容

  • 没有找到相关文章

最新更新