2011-12-07 16 views
8

¿Cómo puedo decirle a proguard que mantenga a mis miembros de la clase?Proguard keep classmembers

los necesito para la compatibilidad JSON ...

Ésta es mi clase:

package com.tools.app.holiday; 

public class Holiday { 

    private String name; 

    private Calendar dateFrom = Calendar.getInstance(); 

    private Calendar dateTo = Calendar.getInstance(); 

    ... 

ya he intentado, pero no funciona ...

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

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

También he implementado serializable e hizo:

-keepclassmembers class * implements java.io.Serializable { 

Pero no todo guarda mis nombres de miembro. Proguard siempre cambia ist a, b, c :-( ¿Cuál falto

Respuesta

13

Todos los nombres de las clases debe ser completo:?

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

Por defecto, ProGuard incluso imprime mensajes si se olvida este

+1

¿Debe especificar cada campo explícitamente? Consulte http://stackoverflow.com/questions/23365021/how-to-tell-proguard-to-keep-prive-fields-without-specifying-each-field – cja