Сбой приложения после обновления RxJava до 2.2.20

#android #rx-java

#Android #rx-java

Вопрос:

Я обновил свою версию Rxjava с 2.1.10 до 2.2.20, после этого мое приложение постоянно падает при запуске с исключением ниже.

E / AndroidRuntime: ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: основная
java.lang.Ошибка nosuchfielder: нет поля экземпляра qs типа Lio /reactivex /internal / fuseable / QueueDisposable; в классе Lcom / tspoon / traceur / ObservableOnAssembly $OnAssemblyObserver; или его суперклассов (объявление ‘com.tspoon.traceur.Наблюдаемая сборка $OnAssemblyObserver’ появляется в /data/app/-Yk-Whoe9EoURHPyNyYsVfQ==/base.apk!classes4.dex) на com.tspoon.traceur.ObservableOnAssembly$OnAssemblyObserver.requestFusion(ObservableOnAssembly.java:67) в io.reactivex.internal.operators.observable.ObservableObserveOn $ObserveOnObserver.OnSubscribe(ObservableObserveOn.java: 86) в io.reactivex.internal.observers.BasicFuseableObserver.OnSubscribe(BasicFuseableObserver.java:66) в io.reactivex.internal.observers.BasicFuseableObserver.OnSubscribe(BasicFuseableObserver.java: 66 ) в io.reactivex.internal.operators.наблюдаемый.ObservableReplay $ReplaySource.subscribe(ObservableReplay.java:1009) в io.reactivex.internal.operators.observable.ObservableReplay.subscribeActual(ObservableReplay.java:170) в io.reactivex.Observable.subscribe(Observable.java: 12267) в com.tspoon.traceur.ObservableOnAssemblyConnectable.subscribeActual(ObservableOnAssemblyConnectable.java:42) при вводе-выводе.reactivex.Observable.subscribe(Observable.java:12267) в io.reactivex.internal.operators.observable.ObservableAutoConnect.subscribeActual(ObservableAutoConnect.java:46) в io.reactivex.Observable.subscribe(Observable.java: 12267) в com.tspoon.traceur.ObservableOnAssembly.subscribeActual(ObservableOnAssembly.java:43) в io.reactivex.Observable.subscribe(Observable.java: 12267) в io.reactivex.internal.operators.observable.ObservableObserveOn.subscribeActual(ObservableObserveOn.java:45) в io.reactivex.Observable.subscribe(Observable.java: 12267) в com.tspoon.traceur.Наблюдаемая сборка.subscribeActual(наблюдаемая сборка.java: 43) в io.reactivex.Observable.subscribe(Наблюдаемая.java: 12267) в io.reactivex.Observable.subscribe(Наблюдаемая.java: 12253) в io.reactivex.Observable.subscribe(Наблюдаемая.java: 12181)

В коде я определяю наблюдателя, как показано ниже

  private Subject<ChangeEvent> callStateEventPs = PublishSubject.<ChangeEvent>create().toSerialized();
private Observable<ChangeEvent> eventCachingObservable = callStateEventPs.replay(1).autoConnect();

//and later i was trying to subscribe it like below
Disposable disposable = eventCachingObservable
                .observeOn(mainThread())
                .subscribe(StateEvent -> doMyJob(), ErrorHandler::logError);

//in gradle file
implementation 'io.reactivex.rxjava2:rxjava:2.2.20'
  

любое руководство будет действительно полезным, я полностью заблокирован в этом.

Комментарии:

1. Похоже, что Traceur использует очень старую версию RxJava. Попробуйте это обходное решение.

2. Переключитесь на сопрограммы

3. спасибо @akarnokd, это действительно спасло меня, сработало как шарм.