项目中已经集成EventBus3.0-beta测试版,没去更新正式版,混淆出现上面的bug
- Markdown和扩展Markdown简洁的语法
Caused by: de.greenrobot.event.e: Subscriber class com.klsw.betterlive.module.login.StartActivity and its super classes have no public methods with the @Subscribe annotation
网上找了混淆的方法,听说是官网的,然并卵
-keepattributes *Annotation*
-keepclassmembers class ** {
@org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
<init>(java.lang.Throwable);
}
最后经过多次对比发现,原来是多个版本的包名不一致,我能怎么办,你们这是要闹那般?
beta1版本的包名:de.greenrobot.even
而正是3.0版本的包名是:org.greenrobot.eventbus
不能不感叹老外的思维真伟大。我算是服了。。。
最后把混淆保留代码改过来一切正常了:
-keepattributes *Annotation*
-keepclassmembers class ** {
@de.greenrobot.event.Subscribe <methods>;
}
-keep enum de.greenrobot.event.ThreadMode { *; }
# Only required if you use AsyncExecutor
-keepclassmembers class * extends de.greenrobot.event.util.ThrowableFailureEvent {
<init>(Java.lang.Throwable);
}
-keepclassmembers class ** {
public void onEvent*(**);
}