ComboDisposable.dispose () вызывает NPE - PullRequest
0 голосов
/ 18 марта 2019

Вызов .dispose () во время запроса вызывает NPE.Есть ли способ решить эту проблему?

Сообщение об ошибке

    java.lang.NullPointerException: The callable returned a null value
W/System.err:     at io.reactivex.internal.functions.ObjectHelper.requireNonNull(ObjectHelper.java:39)
        at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44)
        at io.reactivex.Single.subscribe(Single.java:3575)
        at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
        at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
W/System.err:     at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
        at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
        at java.lang.Thread.run(Thread.java:764)

1 Ответ

0 голосов
/ 19 марта 2019

Это не от вызова dispose, это результат fromCallable, то есть null. В Rxjava 2 вы не можете прогрессировать нули через пар. Это вызовет исключение нулевого указателя, как вы испытываете. Вам нужно проверить свой код и найти способ избежать возврата null. Возможно использование пустого объекта для обозначения отсутствия значения.

Существует исключение из этого и, возможно, лучшее решение этой проблемы. Maybe.fromCallable вернет пустую наблюдаемую, если метод вернет null. Это может быть самым точным, что нужно сделать в вашем случае.

...