如何将枚举类型字段保留在 proguard 中?
Posted
技术标签:
【中文标题】如何将枚举类型字段保留在 proguard 中?【英文标题】:How to keep Enum type fields in proguard? 【发布时间】:2016-05-02 02:48:39 【问题描述】:这是我的实体类:
class Entity
private String id;
Object content;
private Type type;
public enum Typetype1, 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,但没有保留 type 字段。
请帮忙。
【问题讨论】:
【参考方案1】:我在使用 Kotlin 时遇到了同样的问题。尝试使用@Keep
注解
例子:
enum class Color
@Keep RED,
@Keep GREEN,
@Keep BLUE
【讨论】:
【参考方案2】:This thread 可能会有所帮助。
-keep public enum com.mypkg.Entity$**
**[] $VALUES;
public *;
【讨论】:
以上是关于如何将枚举类型字段保留在 proguard 中?的主要内容,如果未能解决你的问题,请参考以下文章
android - 如何让 enum 远离 proguard