Annotations 防止Proguard使用注释混淆子类
我有一些带有Gson注释的类,需要通过ProGuard避免混淆。这段代码可以工作Annotations 防止Proguard使用注释混淆子类,annotations,gson,proguard,Annotations,Gson,Proguard,我有一些带有Gson注释的类,需要通过ProGuard避免混淆。这段代码可以工作 public abstract class FacebookIdentifier { @Expose public String id; @Expose public String name; } -keepclasseswithmembers class * { @com.google.gson.annotations.* <fields>; } 这样的类是模糊的,即使它的
public abstract class FacebookIdentifier {
@Expose public String id;
@Expose public String name;
}
-keepclasseswithmembers class * {
@com.google.gson.annotations.* <fields>;
}
这样的类是模糊的,即使它的父类有一些注释可以防止它被模糊。有没有办法使此类不被混淆?您必须明确指定扩展名:
-keep class com.example.FacebookApplication
然而,对于JSON,类名可能并不重要;只有字段名。保存字段就足够了:
-keepclassmembers class * {
@com.google.gson.annotations.* <fields>;
}
-keepclassmembers类*{
@com.google.gson.annotations.*;
}
这是假设所有序列化字段都带有注释,这对于GSON来说并不是严格要求的。必须明确定义每个类是我试图避免的。这不是很安全的重构。所以不好维持。
-keepclassmembers
的工作效果并不比-keepClassSwithMembers
好,它没有考虑继承的类。这个问题有什么进展吗??
-keepclassmembers class * {
@com.google.gson.annotations.* <fields>;
}