Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 告诉Proguard在方法上保留注释_Java_Android_Annotations_Proguard - Fatal编程技术网

Java 告诉Proguard在方法上保留注释

Java 告诉Proguard在方法上保留注释,java,android,annotations,proguard,Java,Android,Annotations,Proguard,我正在使用我自己的注释: @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD, ElementType.TYPE}) public @interface Loggable { } 并使用Proguard进行模糊处理。我使用-keepattributes*注释* 在Proguard配置中保留注释 在运行时,当我使用someClass.getAnnotation(Loggable.class)everything从注释类检

我正在使用我自己的注释:

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface Loggable { }
并使用Proguard进行模糊处理。我使用
-keepattributes*注释*
在Proguard配置中保留注释

在运行时,当我使用
someClass.getAnnotation(Loggable.class)
everything从注释类检索注释时,我检索注释的非空实例

但是,当我想将其应用于某个类的带注释的方法时,我从
someMethod.getAnnotation(Loggable.class)
中检索null

Proguard正在从方法中删除注释吗?我如何告诉它不要这样做


我正在使用Proguard 4.7。

您需要使用
keepclassmembers
参数:

-keepclassmembers class ** {
  @com.yourpackage.Loggable public *;
}

谢谢,但是这不会导致保留已注释方法的名称吗?我不想这样,我只需要保留该方法上的注释,而不是该方法的名称。@NumberFour否,还有另一个参数保留方法名称。我建议您对模糊代码进行反编译,看看它是如何工作的。这有助于更好地理解
proguard
params,而不仅仅是阅读文档。您是对的,Proguard文档有时过于模糊。