1

ProGuard は、ここで「保持」構文を定義します。

[@annotationtype] [[!]public|final|abstract|@ ...] [!]interface|class|enum classname
    [extends|implements [@annotationtype] classname]
[{
    [@annotationtype] [[!]public|private|protected|static|volatile|transient ...] <fields> |
                                                                      (fieldtype fieldname);
    [@annotationtype] [[!]public|private|protected|static|synchronized|native|abstract|strictfp ...] <methods> |
                                                                                           <init>(argumenttype,...) |
                                                                                           classname(argumenttype,...) |
                                                                                           (returntype methodname(argumenttype,...));
    [@annotationtype] [[!]public|private|protected|static ... ] *;
    ...
}]

一般化された修飾子と型を使用し続けることは可能ですか?
たとえば-keep * * my.package.MySomething { *; } 、1 番目*はこの部分のすべてを意味[!]public|final|abstract|@ ...]
、2 番目*はこの部分のすべてを意味します: [!]interface|class|enum

もう少し詳しく言うと、私は ProGuard 引数を動的に生成しようとしていますが、それ以外のものかどうかはわかりませmy.package.MySomethingん。abstract classpublic enum

これを達成するのに役立つ方法、ProGuardのオプションはありますか?

4

1 に答える 1

2

構成

-keep class my.package.MySomething { *; }

あなたが望むことをします。一致をさらに制限したい場合にのみ、アクセス修飾子を追加します (例: public; またはクラスではなくインターフェイス)。

于 2012-07-14T22:39:51.590 に答える