EventBus和Proguard:无法调度事件

我试图导出一个签名的应用程序,当我运行我的应用程序,我得到这个exception

Could not dispatch event: class com.achlan.myapp.events.e to subscribing class class com.achlan.myapp.bd 

的mapping.txt:

 com.achlan.myapp.events.RestResult -> com.achlan.myapp.events.e com.achlan.myapp.data.DataManager -> com.achlan.myapp.bd: 

我已经将这行添加到我的proguardconfiguration中:

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

我在我的proguardconfiguration中缺less一些东西吗?

Solutions Collecting From Web of "EventBus和Proguard:无法调度事件"

我还遇到了EventBus和ProGuard的一个问题,我联系了ProGuard / DexGuard的创build者,他给了我下面的“解决方法”,可能有助于:

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

includedescriptorclasses添加到您的configuration文件中,以防止ProGuard / DexGuard的优化步骤为方法名称添加后缀。

不要混淆这个方法。 我喜欢这个:

如果我使用

 EventBus.getDefault().register(this, "getName", Name.class); 

我会做

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

它可以工作。

如果您使用非公开(包私有)onEvent方法,您将需要更新您的progaurdconfiguration如下:

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