将内部接口方法名称保留在 proguard 中

2022-09-01 14:13:24

假设我有..

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();

    }

如何确保此接口的方法名称不会被模糊处理,同时仍然对类的其余部分进行模糊处理?


答案 1

ProGuard 使用 Java 字节码的命名约定,如类文件名和堆栈跟踪所示。因此:

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

答案 2

我尝试了以下方法,它似乎有效:

-keep interface com.somepackage.SomeClass$someInterface

推荐