EventBus接收不到事件(debug版本可以接收,release接收不到)

该问题是因为Debug版本未添加 EventBus的混淆,而Release版本添加 了EventBus的混淆导致的。

解决方法:
添加EventBus混淆规则。ProGuard工具混淆了方法名,并可能移除那些未被调用的方法。订阅者的事件处理方法没有被直接调用,如果开启了ProGuard工具的压缩功能,那么你必须告诉ProGuard工具保留这些订阅者方法。在模块的 proguard-rules.pro 混淆规则文件中添加如下规则:

# EventBus
-keepattributes *Annotation*
-keepclassmembers class ** {
    @org.greenrobot.eventbus.Subscribe ;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
# Only required if you use AsyncExecutor
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
    (java.lang.Throwable);
}

你可能感兴趣的:(android)