2016-11-21 208 views
3

我试图防止proguard模糊接口(或抽象类)方法参数。Proguard保留接口和抽象类的参数名称

可以说,我有我的lib这个接口:

package com.mypackage; 
public interface MyLibListener { 
    void onSomething(boolean success, String message); 
} 

这proguard的文件:

-keepparameternames 
-keep interface com.mypackage.MyLibListener { 
    *; 
} 

然后我组装发布和获取:

package com.mypackage; 
public interface MyLibListener { 
    void onSomething(boolean var1, String var2); 
} 

同样的事情抽象类或使用@Keep注释。迷惑选项keepparameternames似乎只适用于普通班级。任何想法?谢谢!

(相关SO:How to not obfuscate interface methods & it's parameters using Progaurd in android?Proguard keep interface method variable names

回答

1

将以下ProGuard options添加到您的配置。

-keepattributes MethodParameters

如果你的类文件HAVA方法参数的元数据(使用Java8 -parameters或等..编译)`,ProGuard的将保留元数据。