告诉 Proguard 在方法上保留注解
Tell Proguard to keep annotation on methods
我正在使用我自己的注释:
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface Loggable { }
并使用 Proguard 进行混淆。我使用 -keepattributes *Annotation*
在 Proguard 配置中保留注释。
在运行时,当我使用 someClass.getAnnotation(Loggable.class)
从 带注释的 class 中检索注释时,一切正常 - 我检索了我的注释的非空实例.
但是,当我想将相同的方法应用于某些 class 的 注释方法 时,我从 someMethod.getAnnotation(Loggable.class)
.[=14= 检索空值]
Proguard 是否从方法中删除注释?我如何告诉它不要这样做?
我正在使用 Proguard 4.7。
您需要使用keepclassmembers
参数:
-keepclassmembers class ** {
@com.yourpackage.Loggable public *;
}
我正在使用我自己的注释:
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface Loggable { }
并使用 Proguard 进行混淆。我使用 -keepattributes *Annotation*
在 Proguard 配置中保留注释。
在运行时,当我使用 someClass.getAnnotation(Loggable.class)
从 带注释的 class 中检索注释时,一切正常 - 我检索了我的注释的非空实例.
但是,当我想将相同的方法应用于某些 class 的 注释方法 时,我从 someMethod.getAnnotation(Loggable.class)
.[=14= 检索空值]
Proguard 是否从方法中删除注释?我如何告诉它不要这样做?
我正在使用 Proguard 4.7。
您需要使用keepclassmembers
参数:
-keepclassmembers class ** {
@com.yourpackage.Loggable public *;
}