ProGuard
代码混淆规则
ProGuard混淆方法名称,并可能删除不被调用的方法(死代码删除)。
因为没有直接调用订阅者方法,ProGuard(代码混淆规则)假定它们是未使用的。
因此,如果启用ProGuard(代码混淆规则)缩减代码,则必须告诉ProGuard(代码混淆规则)保留这些订阅方法。
使用ProGuard(代码混淆规则)配置文件中的下列规则(proGuard d.cfg)可防止删除订阅方法:
proguard-rules.pro文件中进行如下配置.
-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);
}
注意:无论是否使用订阅服务器索引,都需要此配置。