web-dev-qa-db-fra.com

Conserver les noms des méthodes de l'interface interne dans proguard

Disons que j'ai ..

public class SomeClass {


    public interface someInterface {

        public void firstMethod(String variable);


        public void secondMethod(String variable);


        public void thirdMethod();

    }
}

et je fais..

-keep,includedescriptorclasses public class com.somepackage.SomeClass {
    <fields>;
    <methods>;
}

-keep public interface com.somepackage.someInterface {*;}

Je me retrouve avec 

public interface someInterface {

        public void a(String variable);


        public void a(String variable);


        public void a();

    }

Comment puis-je m'assurer que les noms de méthode de cette interface ne sont pas obscurcis tout en masquant le reste de la classe? 

21
VicVu

ProGuard utilise la convention de dénomination du bytecode Java, comme indiqué dans les noms de fichiers de classe et les stacktraces. Donc:

-keep public interface com.somepackage.SomeClass$someInterface {*;}
28
Eric Lafortune

J'ai essayé ce qui suit et cela a semblé fonctionner:

-keep interface com.somepackage.SomeClass$someInterface
0
Phileo99