防止Proguard删除片段的空构造函数

时间:2012-11-30 06:35:41

标签: android constructor fragment proguard

你知道,Fragment的所有子类都必须包含一个公共空构造函数,但是当使用proguard时,这些构造函数将被删除。我已经指定了下面的命令,但仍然删除了空构造函数。任何人都可以帮我保留Fragment的空构造函数吗?谢谢你。

-keepclassmembers public class * extends android.support.v4.app.Fragment { 
   public <init>(***);
   #public <init>(); //already tried this
}

-keepclassmembers public class * extends com.xxx.MyFragment { 
   public <init>(***);
   #public <init>(); //already tried this
}

1 个答案:

答案 0 :(得分:31)

这应该有效:

-keepclassmembers public class * extends android.support.v4.app.Fragment { 
   public <init>(...);

我相信即使这样也应该足够了:

-keep public class * extends android.support.v4.app.Fragment

因为保持类将使proguard保持默认构造函数。