构建项目时出现 EventBus 异常 - 订阅者 class 没有 public 方法调用 onEvent
EventBus exception when proj is built - Subscriber class has no public methods called onEvent
所以,我的应用交换消息 from/to 我的 MainActivity to/from 一个后台服务,我用 EventBus 来处理它。我正在使用
注册这两个组件
EventBus.getDefault().register(this);
在他们的 onCreate 上。我是 sending/receiving 一个事件:
EventBus.getDefault().post(new MyMessagePojo("message"));
和
public void onEvent(MyMessagePojo event) { ... }
当我 运行 将我的 AndroidStudio 项目直接用于我的测试 phone 时,一切正常。但是,当我生成签名的 APK 时,我安装了该应用程序并发生崩溃,但出现以下异常:
Subscriber class my.package.MainActivity has no public methods called onEvent
显然有。我尝试在我的 MainActivity 中将它从 onEvent
更改为 onEventMainThread
但没有成功。非常沮丧,因为我正要发布应用程序,但现在我无法解决这个问题。
我经历过 this and this 但他们没有帮助。
有什么想法吗?
所以我设法保留了这个方法,在 ProGuard 上添加了以下配置:
-keep public class my.package.MainActivity {
public <methods>;
}
但是,ProGuard 正在扰乱我应用程序中的更多内容。我什至无法登录我的应用程序(我不知道为什么,我只是立即收到网络问题警报)。我正在认真考虑将其关闭。
这在 EventBus HOWTO 文档中得到解决。
https://github.com/greenrobot/EventBus/blob/master/HOWTO.md
使用下面的代码只保留 onEvent 函数。
-keepclassmembers class ** {
public void onEvent*(**);
}
所以,我的应用交换消息 from/to 我的 MainActivity to/from 一个后台服务,我用 EventBus 来处理它。我正在使用
注册这两个组件EventBus.getDefault().register(this);
在他们的 onCreate 上。我是 sending/receiving 一个事件:
EventBus.getDefault().post(new MyMessagePojo("message"));
和
public void onEvent(MyMessagePojo event) { ... }
当我 运行 将我的 AndroidStudio 项目直接用于我的测试 phone 时,一切正常。但是,当我生成签名的 APK 时,我安装了该应用程序并发生崩溃,但出现以下异常:
Subscriber class my.package.MainActivity has no public methods called onEvent
显然有。我尝试在我的 MainActivity 中将它从 onEvent
更改为 onEventMainThread
但没有成功。非常沮丧,因为我正要发布应用程序,但现在我无法解决这个问题。
我经历过 this and this 但他们没有帮助。
有什么想法吗?
所以我设法保留了这个方法,在 ProGuard 上添加了以下配置:
-keep public class my.package.MainActivity {
public <methods>;
}
但是,ProGuard 正在扰乱我应用程序中的更多内容。我什至无法登录我的应用程序(我不知道为什么,我只是立即收到网络问题警报)。我正在认真考虑将其关闭。
这在 EventBus HOWTO 文档中得到解决。 https://github.com/greenrobot/EventBus/blob/master/HOWTO.md
使用下面的代码只保留 onEvent 函数。
-keepclassmembers class ** {
public void onEvent*(**);
}