OnErrorNotImplementedException: исключение не было обработано из-за отсутствия обработчика onError в вызове метода subscribe () - PullRequest
0 голосов
/ 02 мая 2020

Я создаю 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());, похоже, не работает. Любые советы приветствуются!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...