我正在尝试导出已签名的应用程序,当我运行我的应用程序时,我得到此异常
Could not dispatch event: class com.achlan.myapp.events.e to subscribing class class com.achlan.myapp.b.d
Run Code Online (Sandbox Code Playgroud)
的mapping.txt:
com.achlan.myapp.events.RestResult -> com.achlan.myapp.events.e
com.achlan.myapp.data.DataManager -> com.achlan.myapp.b.d:
Run Code Online (Sandbox Code Playgroud)
我已将此行添加到我的proguard配置中:
-keepclassmembers class ** {
public void onEvent*(**); }
Run Code Online (Sandbox Code Playgroud)
我在proguard配置中遗漏了什么吗?
我还遇到了 EventBus 和 ProGuard 的问题,我联系了 ProGuard/DexGuard 的创建者,他向我发送了以下可能有帮助的“解决方法”:
-keepclassmembers,includedescriptorclasses class ** { public void onEvent*(**); }
Run Code Online (Sandbox Code Playgroud)
添加includedescriptorclasses到您的配置文件中以防止 ProGuard/DexGuard 的优化步骤向方法名称添加后缀。
小智 0
不要混淆方法。我确实喜欢这样:
如果我使用
EventBus.getDefault().register(this, "getName", Name.class);
Run Code Online (Sandbox Code Playgroud)
我会做
-keepclassmembers class ** {
public void getName(**);
}
Run Code Online (Sandbox Code Playgroud)
它可以工作。
| 归档时间: |
|
| 查看次数: |
5073 次 |
| 最近记录: |