让我说我有..
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();
}
如何确保此接口的方法名称不会被混淆,同时仍然会混淆其他类?
答案 0 :(得分:30)
ProGuard使用Java字节码的命名约定,如类文件名和堆栈跟踪中所示。因此:
-keep public interface com.somepackage.SomeClass$someInterface {*;}
答案 1 :(得分:1)
我尝试了以下内容,似乎有效:
-keep interface com.somepackage.SomeClass$someInterface
答案 2 :(得分:0)
对于那些正在寻找如何保留其所有成员的自定义注释(在Java的@interface中定义)的人,
您实际上应该像下面这样使用以保持它:
-keep @interface com.your.annotation.interface. {*;}