我在我的应用程序中使用了 eventbus,它在调试模式下工作正常,但在发布 APK 上不工作。
以下代码用于 ProGuard 配置:
-keepattributes *Annotation*
-keepclassmembers class ** {
@org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
我所有的订阅注释方法也是公开的
日志输出:
无法调度事件:com.dhaval.example.model.entity.response.DashboardUnreadStoryResponse 类订阅类 com.dhaval.example.view.activity.MainActivity java.lang.NullPointerException:尝试调用虚拟方法'java.lang。在 com.dhaval.example.view 的 com.dhaval.example.view.activity.MainActivity.b(SourceFile:150) 上的空对象引用上的字符串 com.dhaval.example.model.entity.Dashboard.ba()'。 java.lang.reflect.Method 中的 activity.MainActivity.onEventBusEvent(SourceFile:560)。在 org.greenrobot.eventbus.ca(SourceFile:420) 在 org.greenrobot.eventbus.ca(SourceFile:397) 在 org.greenrobot.eventbus. 调用 (Native Method) 在 org.greenrobot.eventbus.ca(SourceFile:485) .ca(SourceFile:370) at org.greenrobot.eventbus.cd(SourceFile:251) at com.dhaval.example.view.ar$1.a(SourceFile:140) at com.dhaval.example.view.ar$1。一个(源文件:130) 在 com.dhaval.example.f.ap$2.a(SourceFile:90) 在 com.dhaval.example.f.ap$2.a(SourceFile:85) 在 com.dhaval.example.network.a$1。 a_(SourceFile:101) 在 rx.caa_(SourceFile:134) 在 rx.internal.operators.n$aa(SourceFile:224) 在 rx.abb$b.run(SourceFile:107) 在 android.os.Handler。处理回调(处理程序.java:751) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6290) 在 java.在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 的 lang.reflect.Method.invoke(Native Method) ) 07-14 11:39:43.640 16402-16402/com.dhaval.example D/EventBus:没有订阅者注册事件类 org.greenrobot.eventbus.j 07-14 11:39:43.657 16402-16402/com.dhaval.example E/com.dhaval.example.view.ar$1:getResponse 中的错误:尝试调用空对象引用上的虚拟方法“java.lang.String com.dhaval.example.model.entity.Dashboard.ba()”