Ответ 1
ProGuard основан на java-подобной конфигурации с wild-cards. Для этого требуются полностью квалифицированные имена классов. Это должно работать:
-keep @com.google.inject.Singleton public class *
У меня есть куча классов, которые используют, например. аннотация @Singleton как таковая
@Singleton
public class ImageCache
который я хотел бы сохранить. Как я могу настроить инструкцию proguard -keep, чтобы она применима ко всем классам, которые имеют эту аннотацию.
Btw в контексте контекста мне это нужно для приложения с помощью Roboguice на Android, поэтому я добавил теги. Могут помочь другим.
ProGuard основан на java-подобной конфигурации с wild-cards. Для этого требуются полностью квалифицированные имена классов. Это должно работать:
-keep @com.google.inject.Singleton public class *
Сначала определите аннотацию
public @interface DoNotStrip {}
Затем поместите это в proguard.cfg:
-keep,allowobfuscation @interface com.something.DoNotStrip
# Do not strip any method/class that is annotated with @DoNotStrip
-keep @com.something.DoNotStrip class *
-keepclassmembers class * {
@com.something.DoNotStrip *;
}