RuntimeException:无法调度事件@otto

Posted

技术标签:

【中文标题】RuntimeException:无法调度事件@otto【英文标题】:RuntimeException: Could not dispatch event @ otto 【发布时间】:2014-08-03 21:45:34 【问题描述】:

我们当前的应用程序版本中存在来自 otto 的 EventHandler 的问题。 我们在崩溃日志中得到一个RuntimeException,其描述如下:

“原因:java.lang.RuntimeException:无法调度事件: classcom.nameOfBrand.ui.events.SwitchFragmentEvent 到处理程序 [事件处理程序公共无效 com.nameOfBrand.ui.activities.MainActivity.onSwitchFragmentEvent(com.nameOfBrand.ui.events.SwitchFragmentEvent)]"

我们有一个按钮,在它的 onClickListener 中我们触发了一个自定义的SwitchFragmentEvent。 在一些奇怪的情况下,框架无法调度事件并抛出一个RuntimeException

带有按钮的片段扩展了AbstractResultListFragment,而这个片段扩展了AbstractFragment。我们在 AbstractFragement 的 onResume 中注册 EventBus,在 onPause 中取消注册。一切正常,除了这个按钮:/

有没有人有这样的想法或曾经做过类似的事情?

更新: 斯康普特是对的。 RuntimeException 是从我们代码中的 NullPointerException 的奥托原因引发的。谢谢

提示:阅读您的崩溃日志直到结束;)

【问题讨论】:

您是否有任何来自异常的其他信息?那时有should be 一个包装异常。 哦,我明白了!到目前为止还没有在崩溃日志中滚动。在我的例子中,它是一个 NullPointer,正如你所说,它包装在框架的这个 RuntimeException 中。谢谢 @scompt.com 我没有包装异常。我在我的活动中有一个@Produce 方法,我的活动的viewpager 中的一个片段应该接收该事件。但应用程序与异常发生冲突 【参考方案1】:

此时should be 有一个包装异常,它将提供有关崩溃的更多信息。

【讨论】:

你应该如何使用这个 protected 方法 "void dispatch(Object event, EventHandler wrapper)" ? 这怎么可能是一个解决方案?它将我链接到无法解决任何问题的第三方方法?我需要用更高级和更清晰的解释来解决这个问题!【参考方案2】:

如果配合androidAnnotation使用,添加@UiThread查看处理方法。注意方法不应该是private

【讨论】:

view treatment method 是什么意思?

以上是关于RuntimeException:无法调度事件@otto的主要内容,如果未能解决你的问题,请参考以下文章

Android Java.Lang.RuntimeException:无法启动活动组件信息

java.lang.RuntimeException:无法启动活动 ComponentInfo。 java.lang.ArrayIndexOutOfBoundsException:长度=7;指数=7

netty源码:4 事件调度层:为什么 EventLoop 是 Netty 的精髓?

Node - 浅谈对非阻塞I/O事件循环的理解

Telerik Kendo MVC 调度程序 - 无法移动事件

操作系统中如何引发进程调度?