Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android rxjava中的空指针_Android_Rx Java2 - Fatal编程技术网

Android rxjava中的空指针

Android rxjava中的空指针,android,rx-java2,Android,Rx Java2,我从OCR收到消息,然后像这样通过rxjava发布 Disposable=Observable.just(OCR()) .observeOn(AndroidSchedulers.MainThread()) .subscribeOn(schedulers.newThread()) .flatMap(新函数(){ ............ }) .订阅(新消费者){ ............ }) OCR()本身从服务器获取消息,返回类型是一个实体,代码在这里 public static Resu

我从OCR收到消息,然后像这样通过
rxjava
发布

Disposable=Observable.just(OCR())
.observeOn(AndroidSchedulers.MainThread())
.subscribeOn(schedulers.newThread())
.flatMap(新函数(){
............
})
.订阅(新消费者){
............
})
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(){
                        ............此处省略
                    })
Disposable-Disposable=Observable.just(imageClient.OCR(**,**,**))
.observeOn(AndroidSchedulers.MainThread())
.subscribeOn(schedulers.newThread())
.map(新函数(){
............此处省略
})
.flatMap(新函数(){
............此处省略
})
.订阅(新消费者){
............此处省略
})

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

使用
可观察。只需在传递参数时执行它。由于
imageClient.OCR(*,***,***,**)
给网络打电话。你得到了一个例外

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

实现这一目标的方法是:

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

另请参见

,如果我没有弄错,OCR()是否返回空值?如果是这样,OCR()给你一个空值是否正确?如何实现OCR?刚刚更新,谢谢。