33

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

@Singleton
public class ImageCache

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

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

4

2 回答 2

52

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

-keep @com.google.inject.Singleton public class *
于 2012-07-24T23:12:55.190 回答
17

首先定义一个注解

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 *;
}
于 2017-09-10T20:05:11.920 回答