Подтвердить что ты не робот

Сохранить аннотированный класс в Proguard

У меня есть куча классов, которые используют, например. аннотация @Singleton как таковая

@Singleton
public class ImageCache

который я хотел бы сохранить. Как я могу настроить инструкцию proguard -keep, чтобы она применима ко всем классам, которые имеют эту аннотацию.

Btw в контексте контекста мне это нужно для приложения с помощью Roboguice на Android, поэтому я добавил теги. Могут помочь другим.

4b9b3361

Ответ 1

ProGuard основан на java-подобной конфигурации с wild-cards. Для этого требуются полностью квалифицированные имена классов. Это должно работать:

-keep @com.google.inject.Singleton public class *

Ответ 2

Сначала определите аннотацию

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 *;
}