保持注释类Proguard的(Keep annotated class in Proguard)

2019-07-30 14:09发布

我有一大堆的类,例如一个@Singleton注释,像这样用

@Singleton
public class ImageCache

我想保持。 我该如何进行配置,以便它适用于有注释的所有类-keep语句proguard的。

顺便说一句在环境而言,我需要这在Android上使用Roboguice一个应用程序,这就是为什么我添加的标签。 可以帮助别人。

Answer 1:

ProGuard的是基于与野生卡类似Java的配置。 它要求完全限定类名。 这应该工作:

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


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


文章来源: Keep annotated class in Proguard