Что такое правило pro-guard для аннотации StringDef в android?
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";
}
}
Когда я использую правило default pro-guard в папке tools Android SDK, я получаю ошибку для ScreenDensity
. Каково правило про-гвардии, чтобы сохранить это StringDef
ScreenDensity
от того, чтобы запутаться?
2 ответа:
Попробуйте добавить это правило proguard:
-keepclassmembers class ** { @your.package.AssetsHelper.ScreenDensity public *; }
Исходные аннотации предназначены для того, чтобы заставить промграммеров использовать определенные контенты вместо "волшебных" чисел или строк, которые ничего не значат для тех, кто не знаком с кодом.
StringDef
является аннотацией политики хранения источника. Поэтому он будет автоматически удален в скомпилированном коде.