ProGuard:如何保持整个班级,但它是构造函数

时间:2012-12-25 06:42:39

标签: proguard

有没有办法指定保留所有成员和&类的方法但不是它的构造函数。

2 个答案:

答案 0 :(得分:0)

使用-keep选项并指定构造函数名称。这里有更多信息(向下滚动到“保留选项”部分:Proguard Usage

例如,您可以使用!:

执行此类操作
-keep class !com.yourcompany.YourClass {
  <init>(...);
}

答案 1 :(得分:0)

这是一个不寻常的要求,但这应该有效:

-keepclassmembers class mypackage.MyClass {
  <fields>;
  *** !<init>(...);
}

第三行将方法与任何返回值,任何参数和任何名称匹配,<init>除外。

使用-keep保持班级也会自动保留其无参数构造函数。

在代码中实例化一个类当然也会导致保留相应的构造函数。