混淆(ProGuard)
ProGuard会把方法名简化和移除没有调用过的方法。因为订阅者的处理方法不是直接调用的,所以ProGuard会导致项目出错。因而如果开发者开启项目混淆,必须让ProGuard保留这个事件处理方法。只要在混淆文件使用以下代码块,就可以保证订阅者的处理方法不会被移除。
-keepattributes *Annotation*
-keepclassmembers class ** {
@org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
# Only required if you use AsyncExecutor
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
<init>(java.lang.Throwable);
}