八,ProGuard

ProGuard

代码混淆规则
ProGuard混淆方法名称,并可能删除不被调用的方法(死代码删除)。
因为没有直接调用订阅者方法,ProGuard(代码混淆规则)假定它们是未使用的。
因此,如果启用ProGuard(代码混淆规则)缩减代码,则必须告诉ProGuard(代码混淆规则)保留这些订阅方法。
使用ProGuard(代码混淆规则)配置文件中的下列规则(proGuard d.cfg)可防止删除订阅方法:
proguard-rules.pro文件中进行如下配置.

-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);
}

注意:无论是否使用订阅服务器索引,都需要此配置。

demo地址

demo源码

你可能感兴趣的:(八,ProGuard)