我混淆了我的类并手动更新了我的 spring 配置 xml,但问题是,proguard 更改了我的 setter 方法的名称并将它们变成了类似的东西
public void d(a a){
b= a;
}
因此,当 spring 尝试通过反射调用 setB("something") 时,它会崩溃。混淆时避免反射错误的好方法是什么?有什么想法吗
您必须避免混淆这些类。使用-keep选项排除它们。另一种方法是使用Spring JavaConfig而不是 XML;这样配置也将被混淆。
根据spring bean 模式,属性名称定义为
属性的名称,遵循 JavaBean 命名约定。
根据JavaBean 规范,setter 应该以set
. 你可以通过提供一个classNameBeanInfo
类来指定一个替代设置器来解决这个问题,但我猜 Proguard 也会混淆这个名称......