2014-04-29 2 views
22

Dies ist meine Klasse:Wie ProGuard zu sagen, private Felder zu halten, ohne jedes Feld Angabe

package com.tools.app.holiday; 

public class Holiday { 

    private String name; 

    private Calendar dateFrom = Calendar.getInstance(); 

    private Calendar dateTo = Calendar.getInstance(); 

    ... 

ich diese privaten Felder, indem Sie den folgenden in meiner ProGuard Regeldatei halten:

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

Aber ich würde es vorziehen, nicht jedes Feld einzeln angeben zu müssen. Wie kann ich das machen?

P.S. Ich habe das meiste aus Proguard keep classmembers gestohlen, weil diese Frage nah an dem war, was ich gefragt habe.

Antwort

38

Laut ProGuard documenation entspricht der Platzhalter <fields> einem beliebigen Feld. So sollte es so etwas wie sein:

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

Wenn Sie private Felder in allen Klassen erhalten wollen verwenden:

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

Wie wäre es '-keepclasseswithmembers Klasse * {@ com.activeandroid.annotation.Column ; } ' –