【问题标题】:Proguard keep classmembersProguard 保留班级成员
【发布时间】:2012-01-15 03:59:06
【问题描述】:

我怎样才能告诉 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 总是将 ist 更改为 a, b, c :-( 我错过了什么?

【问题讨论】:

    标签: android json serialization field proguard


    【解决方案1】:

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

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

    默认情况下,如果您忘记了这一点,ProGuard 甚至会打印出消息。

    【讨论】:

    猜你喜欢
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    相关资源
    最近更新 更多