私が持っているとしましょう...
public class SomeClass {
public interface someInterface {
public void firstMethod(String variable);
public void secondMethod(String variable);
public void thirdMethod();
}
}
そして私は..
-keep,includedescriptorclasses public class com.somepackage.SomeClass {
<fields>;
<methods>;
}
-keep public interface com.somepackage.someInterface {*;}
私は結局
public interface someInterface {
public void a(String variable);
public void a(String variable);
public void a();
}
残りのクラスを難読化しながら、このインターフェイスのメソッド名が難読化されないようにするにはどうすればよいですか?
ProGuardは、クラスファイル名とスタックトレースに見られるように、Javaバイトコード)の命名規則を使用します。
-keep public interface com.somepackage.SomeClass$someInterface {*;}
私は以下を試しましたが、うまくいったようです:
-keep interface com.somepackage.SomeClass$someInterface
すべてのメンバーを保持するカスタム注釈(Javaの@インターフェースで定義されている)を保持する方法を探している人のために、
それを維持するには、実際には以下のように使用する必要があります。
-keep @interface com.your.annotation.interface. {*;}