我有一个密封类如下。
sealed class Fruits(private val category: String) {
object Apple : Fruits("APPLE")
class Banana : Fruits("BANANA)
}
当minifyEnabled为true并且启用了debuggable时,它会被混淆,如下所示:
public static abstract class Fruits {
private Fruits(String param1String) {
this.category = param1String;
}
public static final class Banana extends Fruits {
static {
}
}
public static final class Apple extends Fruits {
public static final Apple INSTANCE = new Apple();
private Apple() {
super("APPLE", null);
}
}
}
我们是否有任何proguard属性可以防止香蕉类的构造函数删除?
1条答案
按热度按时间oxiaedzo1#
您可以使用ProGuard规则中的
-keepclassmembers
来防止Banana类的构造函数删除。它在代码模糊处理期间保留特定的类成员,例如构造函数、方法和字段:在本例中,
com.yourpackage
应该替换为应用程序的实际包名。规则的
<init>(...)
部分告诉ProGuard保留Banana类的构造函数沿着参数。使用此规则,Banana类的构造函数在代码模糊处理期间将不会被删除,并且您应该能够毫无问题地使用它。