android proguard roboguice

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 *