EventBus GreenRobot всегда возвращает исключение NullPointerException

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

У меня есть ActivityA, ActivityB, FragmentB1 внутри ActivityB. Мне нужно будет передать идентификатор строки из ActivityA в ActivityB, FragmentB1. Поскольку в ActivityB у меня будет еще несколько фрагментов, которым также понадобится этот идентификатор, я подумал, почему бы не использовать EventBus. Таким образом, ActivityA стал Издателем, а ActivityB, FragmentB1 стал Подписчиками.

Определение POJO для события

public class EventUid {
    private final String Uid;

    public EventUid(String uid) {
        Uid = uid;
    }

    public String getUid() {
        return Uid;
    }
}

Код для ActivityA выглядит следующим образом. Следующий код запускается, когда я выбираю элемент Spinner.

EventBus.getDefault().post(new EventUid(Uid));

Код для ActivityB, FragmentB1 выглядит следующим образом. Сначала я регистрируюсь на событие в onStart().

@Override
public void onStart() {
    super.onStart();
    EventBus.getDefault().register(this);
}

Затем я отменяю регистрацию события в onStop().

@Override
public void onStop() {
    EventBus.getDefault().unregister(this);
    super.onStop();
}

Прежде чем подписаться на событие, я определяю строку в ActivityB и FragmentB1.

private String ProductUid;

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

@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventUid(EventUid event) {
    ProductUid = event.getUid();
}

Я не уверен, где я мог ошибиться, но ActivityB и FragmentB1 всегда возвращают исключение NullPointerException. Может кто-нибудь указать мне правильный путь?

Спасибо

РЕДАКТИРОВАТЬ: Добавление LogCat. PS: Упражнение, Имена фрагментов из этого Вопроса (названы для облегчения понимания) будут отличаться от LogCat.

--------- beginning of crash
06-10 12:44:20.342 3019-3019/blog.deshki.editor E/AndroidRuntime: FATAL EXCEPTION: main
                                                                  Process: blog.deshki.editor, PID: 3019
                                                                  java.lang.RuntimeException: Unable to start activity ComponentInfo{blog.deshki.editor/blog.deshki.editor.screens.media.MediaActivity}: java.lang.NullPointerException: Can't pass null for argument 'pathString' in child()
                                                                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
                                                                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
                                                                      at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                                                                      at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                      at android.os.Looper.loop(Looper.java:148)
                                                                      at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                      at java.lang.reflect.Method.invoke(Native Method)
                                                                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                                   Caused by: java.lang.NullPointerException: Can't pass null for argument 'pathString' in child()
                                                                      at com.google.firebase.database.DatabaseReference.child(Unknown Source)
                                                                      at blog.deshki.editor.screens.media.MediaActivity.firebaseSettings(MediaActivity.java:291)
                                                                      at blog.deshki.editor.screens.media.MediaActivity.onCreate_aroundBody0(MediaActivity.java:267)
                                                                      at blog.deshki.editor.screens.media.MediaActivity$AjcClosure1.run(MediaActivity.java:1)
                                                                      at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149)
                                                                      at com.frogermcs.androiddevmetrics.aspect.ActivityLifecycleAnalyzer.executeWithTracingIfEnabled(ActivityLifecycleAnalyzer.java:88)
                                                                      at com.frogermcs.androiddevmetrics.aspect.ActivityLifecycleAnalyzer.ajc$inlineAccessMethod$com_frogermcs_androiddevmetrics_aspect_ActivityLifecycleAnalyzer$com_frogermcs_androiddevmetrics_aspect_ActivityLifecycleAnalyzer$executeWithTracingIfEnabled(ActivityLifecycleAnalyzer.java:1)
                                                                      at com.frogermcs.androiddevmetrics.aspect.ActivityLifecycleAnalyzer.logAndExecute(ActivityLifecycleAnalyzer.java:66)
                                                                      at blog.deshki.editor.screens.media.MediaActivity.onCreate(MediaActivity.java:262)
                                                                      at android.app.Activity.performCreate(Activity.java:6237)
                                                                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
                                                                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
                                                                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                                      at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                      at android.os.Looper.loop(Looper.java:148) 
                                                                      at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                                      at java.lang.reflect.Method.invoke(Native Method) 
                                                                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
06-10 12:44:20.358 1279-2221/? E/SurfaceFlinger: ro.sf.lcd_density must be defined as a build property

0 ответов

Другие вопросы по тегам