BUG 记录
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxx.xxxx/com.xxx.xxxx.activity.MainActivity}: org.a.a.e: Subscriber class com.xxx.xxxx.activity.MainActivity and its super classes have no public methods with the @Subscribe annotation
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2946)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6810)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
Caused by: org.a.a.e: Subscriber class com.xxx.xxxx.activity.MainActivity and its super classes have no public methods with the @Subscribe annotation
at org.a.a.p.a(SubscriberMethodFinder.java:67)
at org.a.a.c.a(EventBus.java:140)
at com.xxx.xxxx.base.BaseActivity.e(BaseActivity.java:82)
at com.xxx.xxxx.base.BaseActivity.onCreate(BaseActivity.java:50)
at android.app.Activity.performCreate(Activity.java:7224)
at android.app.Activity.performCreate(Activity.java:7213)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
这里的 BaseActivity 是:
EventBus.getDefault().register(this);
混淆的时候 需要先看接收的方法是否有
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
public void getInfo(Object object) {
if (object instanceof Boolean) {
boolean mNetWorkInfo = (boolean) object;
if (mNetWorkInfo) {
// SnackBarUtil.show(this, "网络连接");
} else {
SnackBarUtil.show(this, "网络断开连接");
}
}
};
其次看混淆文件
-keepclassmembers class ** {
public void onEvent*(**);
}
-keepclassmembers class ** {
public void xxxxxx(**);
}
-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);
}