防止Proguard使用注释来混淆子类

时间:2014-06-12 08:29:10

标签: annotations gson proguard

我有一些带有Gson注释的课程,我需要通过ProGuard避免混淆。这段代码可以工作

public abstract class FacebookIdentifier {
    @Expose public String id;
    @Expose public String name;
}

-keepclasseswithmembers class * {
    @com.google.gson.annotations.* <fields>;
}

现在我有一些扩展这些类的类,没有额外的字段。例如:

class FacebookApplication extends FacebookIdentifier {}

这样的类被混淆,即使它的父类有一些注释可以防止它被混淆。有没有办法让这个课程不被混淆?

1 个答案:

答案 0 :(得分:0)

您必须明确指定扩展名:

-keep class com.example.FacebookApplication

但是,对于JSON,类名可能并不重要;只有字段名称。保留字段应该足够了:

-keepclassmembers class * {
    @com.google.gson.annotations.* <fields>;
}

这假设所有序列化字段都是注释的,这对GSON来说并不是严格要求的。

相关问题