2014-04-29 2 views
22

यह मेरी कक्षा है:ProGuard बताने के लिए कैसे प्रत्येक क्षेत्र निर्धारित किए बिना ही निजी क्षेत्रों रखने के लिए

package com.tools.app.holiday; 

public class Holiday { 

    private String name; 

    private Calendar dateFrom = Calendar.getInstance(); 

    private Calendar dateTo = Calendar.getInstance(); 

    ... 

मैं अपने ProGuard नियम फ़ाइल में निम्न रख कर इन निजी क्षेत्रों रख सकते हैं:

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

लेकिन मैं व्यक्तिगत रूप से प्रत्येक फ़ील्ड को निर्दिष्ट नहीं करना चाहता हूं। मैं यह कैसे कर सकता हूँ?

पीएस मैंने इनमें से अधिकांश को Proguard keep classmembers से चुरा लिया क्योंकि वह प्रश्न जो मैं पूछ रहा हूं उसके करीब था।

उत्तर

38

ProGuard documenation के अनुसार वाइल्डकार्ड <fields> किसी भी क्षेत्र से मेल खाता है।

-keepclassmembers class com.tools.app.holiday.Holiday { 
    private <fields>;  
} 

आप सभी वर्गों में निजी क्षेत्रों की रक्षा करना चाहते हैं का उपयोग करें:: इस प्रकार यह कुछ ऐसा होना चाहिए

-keepclassmembers class * { 
    private <fields>;  
} 
+0

कैसे 'बारे में -keepclasseswithmembers वर्ग * {@ com.activeandroid.annotation.Column ; } ' –

संबंधित मुद्दे