在Proguard中保留注释课程

时间:2012-07-23 23:52:38

标签: android proguard roboguice

我有很多类使用例如@Singleton注释就像这样

@Singleton
public class ImageCache
我想保留。如何配置proguard -keep语句,使其适用于具有该注释的所有类。

就上下文而言,我需要在Android上使用Roboguice的应用程序,这就是我添加标签的原因。可能会帮助别人。

2 个答案:

答案 0 :(得分:37)

ProGuard基于类似Java的配置,带有通配符。它确实需要完全限定的类名。这应该有效:

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

答案 1 :(得分:5)

首先定义注释

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