0

我正在研究 ROS android 项目。我正在实现 EventBus 以不断更新 textViews 的值。我将值从 ManActivity 发布到 MainFragment

但我越来越低于错误

org.greenrobot.eventbus.EventBusException:订阅者类 com.korechi.roamioapp.MainActivity 及其超类没有带有 @Subscribe 注释的公共方法

我试过这个链接,但没有帮助。而且我没有使用 proGuard,所以我认为我不需要任何规则来修复并且不确定 proGuard 是如何工作的。

谢谢,非常感谢您的帮助。

我在MainActivity上注册事件 ,我的 MainActivity扩展了 AppCompatRosActivity

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

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

MainActivity发布值

     Subscriber<Float32> speed = connectedNode.newSubscriber("/RoamIO/speed/app_ver", Float32._TYPE);
        speed.addMessageListener(new MessageListener<Float32>() {
            @SuppressLint("StringFormatMatches")
            @Override
            public void onNewMessage(Float32 float32) {

                Log.d(TAG, "onNewMessage: /RoamIO/speed/app_ver : "+String.format(getResources().getString(R.string.speedMetric)));
                fragmentMessages.setSpeed(String.format(getResources().getString(R.string.speedMetric)));
                EventBus.getDefault().post(fragmentMessages);
//                mainFragment.speedTxtView.setText(String.format(getResources().getString(R.string.speedMetric),
//                        float32.getData()));
            }
        });

像这样从MainFragment订阅

@Subscribe(threadMode = ThreadMode.MAIN)
    public void onEvent(Messages messages){
       speedTxtView.setText(messages.getSpeed());
    }

摇篮

implementation 'org.greenrobot:eventbus:3.2.0'
4

0 回答 0