Шина событий GreenRobot не может видеть аннотацию, нет общедоступных методов

Итак, я узнал о модуле шины событий Green Robots. Следуйте инструкциям на этой странице, чтобы попытаться заставить его работать: http://greenrobot.org/eventbus/documentation/how-to-get-started/

Кажется достаточно простым.

Я ввожу соответствующий код, но при запуске на устройстве я получаю сбой:

org.greenrobot.eventbus.EventBusException: Subscriber class com.crowdlab.activities.LoadingActivity and its super classes have no public methods with the @Subscribe annotation.

Первые несколько строк моего класса выглядят так:

public class LoadingActivity extends BaseActivity implements AlertDialogButtonListener {
    AlertDialog mDialog = null;
    AlertDialog mPushDialog = null;

    @Subscribe
    public void onMessageEvent(MessageEvent event){
        Toast.makeText(this, "From Loading "+event.message, Toast.LENGTH_SHORT).show();
    }

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

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

/Кажется/ аннотация есть. Компиляция происходит без предупреждения. Я использую версию 3.0.0, как указано в файле gradle...

Так что же может быть не так? (RTFM с благодарностью принимается, только скажите, где ФМ с соответствующей статьей.)

Спасибо!

-Кен


person Ken Corey    schedule 08.02.2016    source источник


Ответы (1)


Дох! Я выбрал @Subscribe от Google, а не от Green Robot.

import com.google.common.eventbus.Subscribe;

скорее, чем

import org.greenrobot.eventbus.Subscribe;

Ошибка, вероятно, должна гласить: «Ни один метод не реализует аннотацию com.greenrobot.eventbus @Subscribe».

person Ken Corey    schedule 09.02.2016
comment
Для меня это было из-за ProGuard. Исправление было здесь: greenrobot.org/eventbus/documentation/proguard. - person Yani2000; 30.08.2016