构建proj时的EventBus异常 - Subscriber类没有名为onEvent

时间:2015-06-16 20:46:04

标签: android event-bus greenrobot-eventbus

所以,我的应用程序从/向我的MainActivity向/从后台服务交换消息,我使用EventBus来处理它。我用

注册了这两个组件
EventBus.getDefault().register(this);

他们的onCreates。我发送/接收一个事件:

EventBus.getDefault().post(new MyMessagePojo("message"));

public void onEvent(MyMessagePojo event) { ... }

当我将项目从AndroidStudio运行到我的测试手机时,一切正常。但是,当我生成签名的APK时,我安装了应用程序并遇到了崩溃,但出现以下异常:

Subscriber class my.package.MainActivity has no public methods called onEvent

它显然有的地方。我尝试在MainActivity中将其从onEvent更改为onEventMainThread,但没有成功。自从我即将发布应用程序以来,它非常令人沮丧,现在我无法解决这个问题。

我已经通过了thisthis,但他们没有任何帮助。

有什么想法吗?

2 个答案:

答案 0 :(得分:18)

这是在EventBus HOWTO文档中解决的。 https://github.com/greenrobot/EventBus/blob/master/HOWTO.md

使用以下代码仅保留onEvent函数。

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

答案 1 :(得分:1)

所以我设法保持这个方法在ProGuard上添加以下配置:

-keep public class my.package.MainActivity {
    public <methods>;
}

然而,ProGuard在我的应用程序上搞乱了更多东西。我甚至无法登录我的应用程序(我不知道为什么,我只是立即收到网络问题警报)。我正在认真考虑将其关掉。