EventBus: Subscriber class XXX and its super classes have no public method with the @Subscribe
踩坑错误记录
在做安卓项目的时候,要使用实现在Fragment之间传数据,故使用EventBus,但遇到一个错误:
org.greenrobot.eventbus.EventBusException: Subscriber class com.cyt.translate.fragment.MemoFragment and its super classes have no public methods with the @Subscribe annotationat org.greenrobot.eventbus.SubscriberMethodFinder.findSubscriberMethods(SubscriberMethodFinder.java:67)at org.greenrobot.eventbus.EventBus.register(EventBus.java:143)at com.cyt.translate.fragment.MemoFragment.onCreateView(MemoFragment.kt:53)at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2698)at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:320)at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1187)at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1356)at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1434)at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1497)at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2625)at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2577)at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2722)at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:346)at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1188)at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1356)at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1434)at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1497)at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2625)at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2577)at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:247)at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:541)at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:210)at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1435)at android.app.Activity.performStart(Activity.java:8024)at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3475)at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)at android.os.Handler.dispatchMessage(Handler.java:106)at android.os.Looper.loop(Looper.java:223)at android.app.ActivityThread.main(ActivityThread.java:7656)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
其实问题再第一行错误提示已经很明显了…
Subscriber class com.cyt.translate.fragment.MemoFragment and its super classes have no public methods with the @Subscribe annotation
问题在于:
只有在有使用 @Subscribe 注解方法的类中才需要去注册 EventBus
在这里,我的代码中发送者Fragment1 并没有用到@Subscribe注解,故不能去注册:
EventBus.getDefault().register(this);
只是在接受者里有函数:
@Subscribe(threadMode = ThreadMode.MAIN)
fun onEvent(bundle: Bundle){// dosomething
}
故解决方法:不要在没有出现@Subscribe注解类里注册EventBus
EventBus: Subscriber class XXX and its super classes have no public method with the @Subscribe相关推荐
- Subscriber class XXX and its super classes have no public methods with the @Subscribe annotation
Caused by: org.greenrobot.eventbus.EventBusException: Subscriber class com.pdxx.yxzp.main.student.ex ...
- AndroidStudio EventBus报错解决方法its super classes have no public methods with the @Subscribe
AndroidStudio EventBus报错解决方法its super classes have no public methods with the @Subscribe 参考文章: (1)An ...
- EventBus报错:and its super classes have no public methods with the @Subscribe annotation
繁忙的工期终于结束了,今天封装了工作相关的内容.在处理一个观测者模式的时候想想用用EventBus,于是就用EventBus写了一个栗子但是发现报错了!!!!!看了看报错的内容and its supe ...
- Subscriber class xxx.xxx.xxx and its super classes have no public methods with the@Subscribe annotat
转载自:http://blog.csdn.net/u012452490/article/details/49737693 使用EventBus 3.0.0-beta1的出现bug 报错的原因提示:提示 ...
- Subscriber class .NewsFragment and its super classes have no public methods
使用EventButs3.0.0 出现以下错误 Caused by: de.greenrobot.event.EventBusException: Subscriber class com.gozap ...
- Android 解决 No static method in class La/a/a/a; or its super classes
错误堆栈: Process: com.chaozh.iReader, PID: 24217java.lang.NoSuchMethodError: No static method getDrawab ...
- Android java.lang.NoSuchMethodError: No virtual method ;or its super classes (declaration of
修改 AOSP 源码后调用错误 java.lang.NoSuchMethodError: No virtual method *** in class *** ;or its super classe ...
- Android EventBus Subscriber class XXXActivity has no public methods called onEvent
错误信息: Caused by: c.a.a.g: Subscriber class XXXActivity has no public methods called onEvent. 造成这个错误的 ...
- Subscriber class xxx ,xx already registered to event
这个错误是自己在使用EventBus的时候 register 多写了一次引起的. EventBus.getDefault().register(this);
最新文章
- java_有返回值线程_提前加载例子
- 美国火星车失联的7分钟,高清视频传回来了
- jack语言编译器的实现过程
- [css] 如何给文字的color设置渐变
- 漫谈SCA(软件成分分析)测试技术:原理、工具与准确性
- python调用自己写的函数_python调用自定义函数的实例操作
- Python爬虫开发【第1篇】【机器视觉及Tesseract】
- three.js 下载安装、开发环境
- LVM逻辑卷管理@设备、格式、摩、引导自己主动安装一个完整的章节
- ssm欢欢宠物医院管理系统的设计与实现毕业设计源码171734
- java 注解的实例化
- wordpress安装教程_如何安装WordPress –完整的WordPress安装教程
- java对接支付宝当面付支付和查询
- r1音箱原生系统更改服务器,低门槛不破坏R1功能改AUX音源电脑喇叭[已更新完整]...
- iTop-4412精英版的u-boot-2017.11移植教程(三)
- 国网云(华为组件)使用
- 高通Linux Android 平台中的蓝牙功能学习 (4)-- Android Marshmallow 中的蓝牙 4.2
- Oracle启用scott两种方法
- button标签定义type属性
- CES2017盘点: 各大公司都推出了哪些机器人