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



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

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

这应该有效:

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

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

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

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

最新更新