2011-12-07 9 views
8

私のクラスのメンバーを守るためにproguardにどのように伝えることができますか?Proguard keep class members

私はこれが私のクラスである

... 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; 
} 

を私はすでに試したが、それは仕事をdoesntのシリアライザブルとしました:

しかし、それはすべて私のメンバー名を保持しません。 ?ProGuardのはいつものIST変わり、B、私が行方不明です何 :-(cは

答えて

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

関連する問題