【问题标题】:How to tell ProGuard to keep private fields without specifying each field如何告诉 ProGuard 保留私有字段而不指定每个字段
【发布时间】:2014-06-15 09:53:35
【问题描述】:

这是我的课:

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 窃取了大部分内容,因为这个问题与我要问的问题很接近。

【问题讨论】:

    标签: java android proguard


    【解决方案1】:

    根据ProGuard documenation,通配符<fields> 匹配任何字段。因此它应该是这样的:

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

    如果您想在所有类中保留私有字段,请使用:

    -keepclassmembers class * {
        private <fields>;    
    }
    

    【讨论】:

    • -keepclasseswithmembers class * { @com.activeandroid.annotation.Column &lt;fields&gt;; }怎么样
    猜你喜欢
    • 2016-01-16
    • 1970-01-01
    • 2012-07-06
    • 1970-01-01
    • 2015-08-12
    • 2016-05-02
    • 2011-08-30
    • 2015-07-27
    • 1970-01-01
    相关资源
    最近更新 更多