Я создаю Observable в следующем примере:
private final Observable<SomePojoClass> onPendingSigningObservable;
private OnPendingSigningListener onPendingSigningListener;
this.onPendingSigningObservable = Observable.create(new ObservableOnSubscribe<SomePojoClass>() {
@Override
public void subscribe(@NonNull final ObservableEmitter<SomePojoClass> emitter) {
onPendingSigningListener = new OnPendingSigningListener() {
@Override
public void onPendingSigningAvailable(SomePojoClass data) {
if (data != null) { emitter.onNext(data); }
emitter.onError(new Throwable());
}
};
notifyListenerWithSigningTask();
}
});
public void notifyListenerWithSigningTask() {
if (onPendingSigningListener != null) {
onPendingSigningListener.onPendingSigningAvailable(signingNotificationModel);
}
}
public interface OnPendingSigningListener {
void onPendingSigningAvailable(SomePojoClass data);
}
Я использую эту версию библиотеки:
implementation 'io.reactivex.rxjava2:rxjava:2.2.12'
Это дает ниже cra sh:
Process: bvm.bvmapp.debug.dev, PID: 24063
io.reactivex.exceptions.OnErrorNotImplementedException: The exception was not handled due to missing onError handler in the subscribe() method call. Further reading: https://github.com/ReactiveX/RxJava/wiki/Error-Handling | java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter data
at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:704)
at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:701)
at io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:77)
at io.reactivex.internal.observers.LambdaObserver.onNext(LambdaObserver.java:67)
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onNext(ObservableCreate.java:66)
at com.mycompany.android.SomeClass$1$1.onPendingSigningAvailable(SomeClass.java:133)
at com.mycompany.android.SomeClass.notifyListenerWithSigningTask(SomeClass.java:397)
at com.mycompany.android.SomeClass$1.subscribe(SomeClass.java:138)
at io.reactivex.internal.operators.observable.ObservableCreate.subscribeActual(ObservableCreate.java:40)
at io.reactivex.Observable.subscribe(Observable.java:12267)
at io.reactivex.Observable.subscribe(Observable.java:12253)
at io.reactivex.Observable.subscribe(Observable.java:12155)
at com.mycompany.android.ui.base.SomeClassActivity.subscribeToPendingSigningTasks(SomeClassActivity.java:208)
at com.mycompany.android.ui.somepackage.SomeOtherClassActivity.onStart(SomeOtherClassActivity.kt:43)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1391)
at android.app.Activity.performStart(Activity.java:7348)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3138)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1948)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7050)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter data
at com.mycompany.android.ui.base.SomeClassViewHolder.onSigningTaskReceived(Unknown Source:6)
at com.mycompany.android.ui.base.SomeClassFragment.onSigningTaskReceived(SomeClassFragment.java:33)
at com.mycompany.android.ui.base.SomeBaseActivity.onNoSigningTaskReceived(SomeBaseActivity.java:187)
at com.mycompany.android.ui.base.SomeClassActivity$4.accept(SomeClassActivity.java:219)
at com.mycompany.android.ui.base.SomeClassActivity$4.accept(SomeClassActivity.java:209)
at io.reactivex.internal.observers.LambdaObserver.onNext(LambdaObserver.java:63)
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onNext(ObservableCreate.java:66)
at com.mycompany.android.SomeClass$1$1.onPendingSigningAvailable(SomeClass.java:133)
at com.mycompany.android.SomeClass.notifyListenerWithSigningTask(SomeClass.java:397)
at com.mycompany.android.SomeClass$1.subscribe(SomeClass.java:138)
at io.reactivex.internal.operators.observable.ObservableCreate.subscribeActual(ObservableCreate.java:40)
at io.reactivex.Observable.subscribe(Observable.java:12267)
at io.reactivex.Observable.subscribe(Observable.java:12253)
at io.reactivex.Observable.subscribe(Observable.java:12155)
at com.mycompany.android.ui.base.SomeClassActivity.subscribeToPendingSigningTasks(SomeClassActivity.java:208)
at com.mycompany.android.ui.somepackage.SomeOtherClassActivity.onStart(SomeOtherClassActivity.kt:43)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1391)
at android.app.Activity.performStart(Activity.java:7348)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3138)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1948)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7050)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
При нажатии на ссылку в сообщении об ошибке я получаю этот URL . Но onError(new Throwable());
, похоже, не работает. Любые советы приветствуются!