Я работаю над проектом Android ROS. Я реализую 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'
onEvent
в MainActivity? И почему вы берете этот(threadMode = ThreadMode.MAIN)
? - person Ali   schedule 10.08.2020MainActivity
? - person Ali   schedule 10.08.2020onEvent
в вашемMainActivity
? - person Ali   schedule 10.08.2020