10

署名済みアプリをエクスポートしようとしていますが、アプリを実行すると、この例外が発生します

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

mapping.txt:

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

私はすでにこの行をプロガード構成に追加しました:

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

プロガード構成に何か不足していますか?

4

3 に答える 3

4

EventBus と ProGuard にも問題があり、ProGuard/DexGuard の作成者に連絡したところ、役立つ可能性のある次の「回避策」が送られてきました。

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

includedescriptorclassesメソッド名に接尾辞を追加する ProGuard/DexGuard の最適化ステップを防ぐために、構成ファイルに追加します。

于 2015-04-20T07:51:16.350 に答える
0

非パブリック (パッケージ プライベート) の onEvent メソッドを使用する場合は、次のように progaurd 構成を更新する必要があります。

-keepclassmembers class ** {
    public void onEvent*(**);
    void onEvent*(**);
}
于 2014-10-14T15:33:27.763 に答える
0

メソッドを混同しないでください。私はこれが好きです:

私が使用する場合

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

やります

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

それは働くことができます。

于 2014-07-21T05:16:25.390 に答える