UndeliverableException, связанный с Single.zip и, возможно, bindToLifecycle () - PullRequest
0 голосов
/ 20 февраля 2019

Я недавно обновил свое приложение до RxJava2 и RxLifecycle3 - я также использую Retrofit2.Сейчас я вижу множество исключений UndeliverableExceptions, когда запросы моего сервера через Retrofit и RxJava не выполняются.К сожалению, трассировки стека не показывают, где в коде происходит ошибка - только то, что это, вероятно, поток, использующий Single.zip().

Я искал конструкторы emitters / create, вызывающие onError(), но нашел только tryOnError() звонки в моем приложении.

Может быть, причина в RxLifecycle .compose(bindToLifecycle())?В любом месте, где я использую этот вызов, я помещал его прямо над вызовом subscribe().Я знаю, что этот подход испускает onError(), чтобы отменить поток.В этом случае, правильно ли расположен Single Upstream?Есть ли проблема с удалением операции Single.zip(), находящейся в flatmap()?

Есть ли у вас какие-либо идеи, какие другие шаблоны искать UndeliverableException s?

Fatal Exception: io.reactivex.exceptions.UndeliverableException: The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the exception has nowhere to go to begin with. Further reading: https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling | <Cause Exception Message>
       at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367)
       at io.reactivex.internal.operators.single.SingleZipArray$ZipCoordinator.innerError(SingleZipArray.java:139)
       at io.reactivex.internal.operators.single.SingleZipArray$ZipSingleObserver.onError(SingleZipArray.java:175)
       at io.reactivex.internal.operators.single.SingleObserveOn$ObserveOnSingleObserver.run(SingleObserveOn.java:79)
       at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:119)
       at android.os.Handler.handleCallback(Handler.java:789)
       at android.os.Handler.dispatchMessage(Handler.java:98)
       at android.os.Looper.loop(Looper.java:164)
       at android.app.ActivityThread.main(ActivityThread.java:6938)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
...