如何在proguard中保留Enum类型字段?

时间:2016-01-25 17:30:32

标签: android enums gson proguard android-proguard

这是我的实体类:

class Entity{
    private String id;
    Object content;
    private Type type;
    public enum Type{type1, type2, type3}
}

根据type字段,我将相应的类传递给

gson.fromJson(json, <type1/2/3 class, depending on field type>);

但是我正在使用proguard,这会模糊类型值,所以我无法确定要使用哪个类。

我试图保留类型字段但不保留。这是我的代码:

-keepclassmembers enum * { *; }
-keepclassmembers class com.mypkg.Entity {
    private java.lang.String id;
    private com.mypkg.Entity.Type type;
 }

我看到正在保留id,但不是类型字段。

请帮忙。

2 个答案:

答案 0 :(得分:0)

This thread可能会有所帮助。

-keep public enum com.mypkg.Entity$** {
    **[] $VALUES;
    public *;
}

答案 1 :(得分:0)

我在使用Kotlin时遇到了同样的问题。尝试使用SELECT A.id_project FROM tabA A WHERE A.col like 'alpha' AND 'centauri' = ( SELECT TOP 1 B.colAA from tabB B WHERE A.id_project = B.id_project ORDER BY B.id DESC ) 批注

示例:

@Keep