8

所以,我发现了 Green Robots 的 eventbus 模块。按照此页面上的说明尝试使其正常工作: 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();
    }
    .
    .
    .

它/似乎/注释在那里。编译在没有任何警告的情况下发生。我正在使用 gradle 文件中指定的版本 3.0.0 ...

那么有什么问题呢?(RTFM 欣然接受,只要说出相关文章的 FM 在哪里。)

谢谢!

-肯

4

1 回答 1

10

嗬!我选择了 Google 的 @Subscribe 而不是 Green Robot 的。

import com.google.common.eventbus.Subscribe;

而不是

import org.greenrobot.eventbus.Subscribe;

该错误可能应该是“没有方法实现 com.greenrobot.eventbus @Subscribe 注释”。

于 2016-02-09T15:02:52.037 回答