EventBusException:Subscriber class and its super classes have no public methods with the @Subscribe(
Posted 舒泱
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EventBusException:Subscriber class and its super classes have no public methods with the @Subscribe(相关的知识,希望对你有一定的参考价值。
报错信息:
E/CrashReport: java.lang.RuntimeException: Unable to start activity ComponentInfo{ xxx Activity}: org.greenrobot.eventbus.EventBusException: Subscriber class xxx Activity and its super classes have no public methods with the @Subscribe annotation
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3530)
原因:
官方源码SubscriberMethodFinder.java中写了,如果subscriberMethods为空,就会报这个错,也就是你没有实现Subscribe方法。
解决办法
如果你在程序里注册了订阅事件:EventBus.getDefault().register(this),那就必须得实现Subscribe方法。也许你想说你没有注册EventBus.getDefault().register(this),翻翻你当前的类继承的父类,也许父类中写了EventBus.getDefault().register(this)有没有默认的Subscribe方法。
Subscribe方法示例如下:
@Subscribe(threadMode = ThreadMode.MAIN)
fun onEvent(AnyEventType event) {
/* Do something */
};
以上是关于EventBusException:Subscriber class and its super classes have no public methods with the @Subscribe(的主要内容,如果未能解决你的问题,请参考以下文章