android中StringDef注释的保护规则是什么?

时间:2016-09-30 10:50:01

标签: android android-proguard

public class AssetsHelper {

    @StringDef({ScreenDensity.XHDPI,ScreenDensity.HDPI, ScreenDensity.XXHDPI})
    @Retention(RetentionPolicy.SOURCE)
    public @interface ScreenDensity {
        String HDPI = "HDPI";
        String XHDPI = "XHDPI";
        String XXHDPI = "XXHDPI";
    }
}

当我在Android SDK的工具文件夹中使用默认的专业保护规则时,我收到ScreenDensity的错误。什么是保护StringDef ScreenDensity不被混淆的亲保护规则?

2 个答案:

答案 0 :(得分:2)

尝试添加此proguard规则:

-keepclassmembers class ** {
  @your.package.AssetsHelper.ScreenDensity public *;
}

答案 1 :(得分:-1)

StringDef是源保留政策注释。因此,它将在编译代码中自动删除。

源注释用于强制执行规则,以使用特定的内容代替" magic"数字或字符串,对于不熟悉代码的人来说没有任何意义。