考虑下面的 android 代码结构:
package blah;
class A{
class B{
public void foo(String s){
}
}
}
我如何告诉 proguard 不要删除或混淆 foo.
foo 是编译时代码中未使用的函数,但在运行时从另一个代码运行。
我努力了:
-keep class blah.A.B;
-keepclassmembers class blah.A.B {
public void foo(String s);
}
等等,但没有什么可以阻止 Proguard 删除该功能。
我不希望混淆器更改“foo”的名称。 Proguard 可以更改 A 类或 B 类的名称,但不能更改函数名称“foo”。
有什么建议么?
几乎是对的。在 java 字节码中,$ 字符分隔内部类及其外部类的名称(以避免包名称产生歧义)。因此,只保留方法:
-keepclassmembers class blah.A$B {
public void foo(java.lang.String);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)