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 的精髓?