32

你知道, 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
}
4

1 回答 1

51

这应该工作:

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

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

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

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

于 2012-11-30T06:39:35.063 回答