ProGuard使类成员保持“未使用”注释

时间:2016-11-21 11:54:56

标签: android proguard android-proguard

该应用程序依赖于库,该库具有

类成员
@SuppressWarnings("unused")

注释。当我使用proguard-rules.pro时,

minifyEnabled true

在gradle文件中,使用

在运行时找不到具有上述注释的成员
NoSuchFieldError error. 

如何使用注释

保留那些库包中的成员
@SuppressWarnings("unused")

,通过

"proguard-rules.pro" 

2 个答案:

答案 0 :(得分:2)

@SuppressWarnings注释具有源级保留,因此它不存在于ProGuard处理的实际类文件中。

如果您在运行时需要这些字段,则必须自己添加特定的ProGuard规则。

要保留班级的所有字段,您可以使用如下规则:

-keep class xxx.yyy {
    <fields>;
}

答案 1 :(得分:0)

尝试对您正在使用的特定类使用类似的内容:

-dontwarn {package name}.{class name}
-keep class {package name}.{class name} { *; }
-keep interface {package name}.{class name} { *; }