【问题标题】:Debugger not stoping at breakpoint in RxJava for Android调试器不会在 RxJava for Android 的断点处停止
【发布时间】:2017-01-19 20:06:34
【问题描述】:

下面catch(...) 块中的Log.d(...) 表达式被执行(我可以在Android Studio 中看到日志输出),但调试器不会在同一行设置的断点处停止。这是为什么?调试器在其他断点处停止。

Observable.create(new Observable.OnSubscribe<MobileBankIdSessionResponse.MobileBankIdSession>() {
       @Override
       public void call(final Subscriber<? super MobileBankIdSessionResponse.MobileBankIdSession> subscriber) {
           Schedulers.newThread().createWorker().schedule(new Action0() {
               @Override
               public void call() {
                   try {
                       MobileBankIdSessionResponse r = User.getMobileBankIdSession(reference, nationalIdentity).toBlocking().first();
                       String progressCode = r.getResponse().progress.progressCode;
                       if (StringUtils.equals(progressCode, "COMPLETE")) {
                           subscriber.onNext(r.getResponse());
                           subscriber.onCompleted();
                       } else if (StringUtils.equals(progressCode, "USER_SIGN")
                               || StringUtils.equals(progressCode, "OUTSTANDING_TRANSACTION")) {
                           Schedulers.newThread().createWorker().schedule(this, 2, TimeUnit.SECONDS);
                       } else if (StringUtils.equals(progressCode, "NO_CLIENT")) {
                           subscriber.onError(new Throwable("Fel vid signering"));
                       }
                   } catch (Exception e) {
                       Log.d("AtError", "here");
                       subscriber.onError(e);
                   }
               }
           });
       }
   }).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<MobileBankIdSessionResponse.MobileBankIdSession>() {
       @Override
       public void onCompleted() {}

       @Override
       public void onError(Throwable throwable) {
           mUserLoggedInOutSubject.onNext(Pair.create(throwable.getMessage(), LoginStates.ERROR));
       }

       @Override
       public void onNext(MobileBankIdSessionResponse.MobileBankIdSession mobileBankIdSession) {
           setSession(mobileBankIdSession.session, nationalIdentity);
       }
   });

【问题讨论】:

  • 重建项目并在两行都设置断点:Log.d(...)subscriber.onError(e) 并尝试。它有时会发生。我遇到过这个问题,不知道背后的原因。
  • 谢谢@MonishKamble,但这并没有解决问题。
  • 我现在面临同样的事情。有没有这方面的新信息?

标签: android debugging android-studio rx-java rx-android


【解决方案1】:

对于任何来这里寻求答案的人,您可能没有在您正在使用的 Single 、Flowable 等对象上调用.subscribe(e -&gt;{});

【讨论】:

    猜你喜欢
    • 2011-07-14
    • 2023-03-12
    • 1970-01-01
    • 2015-06-30
    • 2010-11-25
    • 2013-09-27
    • 2015-07-17
    • 2015-02-08
    • 2017-11-01
    相关资源
    最近更新 更多