2011-12-07 28 views
8

Làm thế nào tôi có thể bảo proguard giữ các lớp học của tôi?Proguard giữ các classmembers

tôi cần họ để tương thích JSON ...

Đây là lớp học của tôi:

package com.tools.app.holiday; 

public class Holiday { 

    private String name; 

    private Calendar dateFrom = Calendar.getInstance(); 

    private Calendar dateTo = Calendar.getInstance(); 

    ... 

Tôi đã cố gắng, nhưng nó không làm việc ...

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

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

Tôi cũng thực hiện serialisable and did:

-keepclassmembers class * implements java.io.Serializable { 

Nhưng tất cả không giữ tên thành viên của tôi. Proguard luôn luôn thay đổi ist để a, b, c :-( tôi thiếu gì

Trả lời

13

Tất cả các tên lớp phải có đủ điều kiện:

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

Theo mặc định, ProGuard thậm chí in ra thông điệp nếu bạn quên này

+1

Bạn có phải chỉ định rõ từng trường không? Vui lòng xem http://stackoverflow.com/questions/23365021/how-to-tell-proguard-to-keep-private-fields-without-specifying-each-field – cja

Các vấn đề liên quan