13

私のプロガードでは、パブリック列挙型が難読化されないようにするために次のようにしています。

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

私の質問は、これは public enum Currencyもこのようなクラスに保持しますか?

public class Foo {
    public enum **Currency** {PENNY, NICKLE, DIME, QUARTER};

    ...
}

そうでない場合、何を別途追加する必要がありますか?

以下を追加しても効果がないようです。

-keepattributes InnerClasses

何かアドバイス?ありがとう

4

4 に答える 4

21

あなたは試すことができます

-keep public enum com.stuff.TheEnclosingClass$** {
    **[] $VALUES;
    public *;
}

この回答に示されているように、Proguardはクラスメンバーの列挙型を保持しません

置くことを忘れないでください

-keepattributes InnerClasses
于 2014-02-15T01:33:33.100 に答える
5

特定のクラスを保持するようにプロガードに指示できますか:

-keep class com.xxx.Foo { *; }
于 2013-10-03T12:32:20.017 に答える
3

列挙名とすべてのフィールドを安全にしたい場合、その方法は次のとおりです。

-keep enum * { *; }
于 2019-08-01T08:28:45.967 に答える