2011-12-07 12 views
8

मैं अपने क्लासमेम्बर को रखने के लिए प्रोजेर्ड कैसे बता सकता हूं?प्रोगगार्ड क्लासमेम्बर

मैं उन्हें 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; 
} 

मैं भी लागू किया serialisable और किया:

-keepclassmembers class * implements java.io.Serializable { 

लेकिन यह सब मेरे सदस्य के नाम नहीं रखता है। ProGuard हमेशा ए, बी के लिए IST बदलता है, ग :-(मैं क्या याद आ रही है

उत्तर

13

सभी वर्ग के नाम पूरी तरह से योग्य होना चाहिए:

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

डिफ़ॉल्ट रूप से, ProGuard भी संदेश बाहर प्रिंट अगर आप इस भूल जाते हैं

+1

क्या आपको प्रत्येक फ़ील्ड को स्पष्ट रूप से निर्दिष्ट करना है? कृपया http://stackoverflow.com/questions/23365021/how-to-tell-proguard-to-keep-private-fields-without-specifying-each-field देखें – cja