EventBus中的坑

昨天被一个问题坑住了,

  1. java.lang.RuntimeException: Unable to start activity ComponentInfo
    {com.iflytek.mea.vbgvideo/com.iflytek.mea.vbgvideo.activity.MyOrderActivity}:
    org.greenrobot.eventbus.EventBusException: Subscriber class
    com.iflytek.mea.vbgvideo.activity.MyOrderActivity and its super
    classes have no public methods with the @Subscribe annotation
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2678)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2747)
    at android.app.ActivityThread.access 900(ActivityThread.java:187)atandroid.app.ActivityThread H.handleMessage(ActivityThread.java:1585)
    at android.os.Handler.dispatchMessage(Handler.java:111)
    at android.os.Looper.loop(Looper.java:194)
    at android.app.ActivityThread.main(ActivityThread.java:5871)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1119)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:885) Caused by: org.greenrobot.eventbus.EventBusException: Subscriber
    class com.iflytek.mea.vbgvideo.activity.MyOrderActivity and its
    super classes have no public methods with the @Subscribe annotation
    at org.greenrobot.eventbus.l.a(Unknown Source)
    at org.greenrobot.eventbus.c.a(Unknown Source)
    at com.iflytek.mea.vbgvideo.activity.MyOrderActivity.onCreate(Unknown
    Source)
    at android.app.Activity.performCreate(Activity.java:6127)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2631)
    … 10 more

试了几个手机,发现只有我的debug版本正常,打的release版本都有问题,

恍然发现 我的eventbus没有加混淆配置,加上以下配置就解决了,

混淆eventbus配置

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

你可能感兴趣的:(eventbus3-0,混淆)