私はAntタスクを使用してProGuardでライブラリを難読化しています。ProGuardで難読化するときに内部クラスを公開する
彼らは、特定のアノテーション(@ApiAll)を持っているとき、私は特定のクラス名とそのメソッド名を維持していると私はのInnerClassesを保持する属性のことを要求しています:
<keepattribute name="InnerClasses" />
<keep annotation="com.example.ApiAll"/>
<keepclassmembers annotation="com.example.ApiAll">
<constructor access="public protected"/>
<field access="public protected"/>
<method access="public protected"/>
<constructor access="protected"/>
</keepclassmembers>
私はマッピング出力をチェックしますファイル私は注釈を持っている私の内部クラスとそのメンバーが彼らの名前を曖昧にしていることがわかります。しかし、生成されたjarファイルを見るとクラスが見つかりません。
何か不足していますか?マッピングが、それがそうでないときにこのクラスを保持していると私に伝えているのはなぜですか?
Thanks Markus。これは私の問題を解決するのを助けた – Fenil
これはyGuardと同じ問題の正解です – ygesher