Proguard保留类成员

9

我该如何告诉Proguard保留我的类成员?

我需要它们来实现JSON兼容性...

这是我的类:

package com.tools.app.holiday;

public class Holiday {  

    private String name;

    private Calendar dateFrom = Calendar.getInstance();

    private Calendar dateTo = Calendar.getInstance();

    ...

我已经尝试过,但它没有起作用...

-keepclassmembers class com.tools.app.holiday.Holiday 

-keepclassmembers class com.tools.app.holiday.Holiday *{
    private String name;    
    private Calendar dateFrom;
    private Calendar dateTo;
}

我还实现了序列化并进行了以下操作:

-keepclassmembers class * implements java.io.Serializable {

但是这并不能保留我的成员变量名。Proguard总是将它们更改为a,b,c :-( 我错过了什么?

1个回答

14

所有类名必须是完全限定的:

-keepclassmembers class com.tools.app.holiday.Holiday {
    private java.lang.String name;    
    private java.util.Calendar dateFrom;
    private java.util.Calendar dateTo;
}

默认情况下,即使您忘记这一点,ProGuard也会打印出消息。


1
你必须明确指定每个字段吗?请参见https://dev59.com/QmAg5IYBdhLWcg3wo8P2 - cja

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接