web-dev-qa-db-ja.com

RuntimeException:イベント@ottoをディスパッチできませんでした

現在のアプリバージョンには、ottoのEventHandlerの問題があります。クラッシュログにRuntimeExceptionがあり、次の説明があります。

"理由:Java.lang.RuntimeException:イベントをディスパッチできませんでした:classcom.nameOfBrand.ui.events.SwitchFragmentEventをハンドラーにディスパッチできませんでした[EventHandler public void com.nameOfBrand.ui.activities.MainActivity.onSwitchFragmentEvent(com.nameOfBrand.ui.events.SwitchFragmentEvent )]」

ボタンがあり、そのonClickListenerで、自己定義のSwitchFragmentEventを起動します。いくつかの奇妙な状況では、フレームワークはイベントをディスパッチできず、RuntimeExceptionをスローします。

ボタンのあるフラグメントはAbstractResultListFragmentを拡張し、これはAbstractFragmentを拡張します。 EventBusをAbstractFragementのonResumeに登録し、onPauseで登録解除します。この1つのボタンを除いて、すべてが正常に機能します:/

誰かがこのようなアイデアを持っているか、これまでに関係したことがありますか?

PDATE: Scomptは正しかった。 RuntimeExceptionは、コード内のNullPointerExceptionの原因からスローされました。どうも

ヒント:クラッシュログを最後まで読んでください;)

16
iFoukis

そこに あるべきです その時点でラップされた例外があり、クラッシュに関する詳細情報を提供します。

9
Edward Dale

AndroidAnnotationで使用する場合は、@UiThreadを追加して治療方法を表示します。メソッドはprivateであってはならないことに注意してください。

1
Youngjae