de.greenrobot:eventbus:3.0.0-beta1混淆的坑

来源:互联网 发布:qt编程用什么软件 编辑:程序博客网 时间:2024/06/05 16:08

项目中已经集成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*(**);}
原创粉丝点击