美文网首页
EventBus报 No static field MAIN o

EventBus报 No static field MAIN o

作者: pinkong | 来源:发表于2018-04-09 00:34 被阅读0次

今天用到一个第三方库,其中有用到EventBus,bug模式下都是可以的,本想打个release包就可以交差,结果一启动就崩了。崩溃点在EventBus注册的时候:

 EventBus.getDefault().register(this);

异常消息如下:

java.lang.NoSuchFieldError: No static field MAIN of type Lorg/greenrobot/eventbus/ThreadMode; in class Lorg/greenrobot/eventbus/ThreadMode; or its superclasses (declaration of 'org.greenrobot.eventbus.ThreadMode' appears in /data/app/cn.com.ngds.gamestore.oem-1/base.apk)
                                                       at java.lang.reflect.Method.getAnnotationNative(Native Method)
                                                       at java.lang.reflect.Method.getAnnotation(Method.java:557)

变量找不到,很明显,又是被ProGuard给去掉了。于是再progrard-rules.pro加一句:

-keep enum org.greenrobot.eventbus.ThreadMode { *; }

类似的,当EventBus注解的函数找不到时,可以加以下等等:

# EventBus 3.0
-keepclassmembers class ** {
    public void onEvent*(**);
}

# EventBus 3.0 annotation
-keepclassmembers class * {
    @de.greenrobot.event.Subscribe <methods>;
}

相关文章

网友评论

      本文标题:EventBus报 No static field MAIN o

      本文链接:https://www.haomeiwen.com/subject/xkrvhftx.html