android - Mantener la clase anotada en Proguard
roboguice (2)
Primero define una anotación
public @interface DoNotStrip {}
Luego ponga esto en 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 *;
}
Tengo un montón de clases que utilizan, por ejemplo, una anotación @Singleton como tal
@Singleton
public class ImageCache
que me gustaría mantener. ¿Cómo puedo configurar una instrucción proguard -keep para que se aplique a todas las clases que tienen esa anotación?
Por cierto, en términos de contexto, lo necesito para una aplicación que utiliza Roboguice en Android, por lo que agregué las etiquetas. Podría ayudar a los demás.
ProGuard se basa en una configuración similar a java con comodines. Requiere nombres de clase totalmente calificados. Esto debería funcionar:
-keep @com.google.inject.Singleton public class *