【发布时间】:2011-06-30 02:01:48
【问题描述】:
我混淆了 Lite 和一个完整的项目,它们都引用了一个库项目。在运行时我收到“NoSuchMethodException myMethod”错误
根据http://proguard.sourceforge.net/index.html#/manual/troubleshooting.html我必须在proguard.cfg中添加以下内容
-keep class mypackage.MyClass { void myMethod(); }
我的方法返回一个字符串并接受 3 个字符串参数,所以我在 proguard.cfg 中添加了以下内容
-keep public class com.mycompany.appName.MyClass {
String myMethod(String, String, String);
}
但我仍然遇到同样的错误。
假设我正在构建精简版 com.mycompany.appName.lite,我假设我不必更改添加到 proguard.cfg 行中的包名称,因为它是一个引用库。
我有什么遗漏吗?谢谢。
【问题讨论】:
-
好的,我找到了解决方案。我必须在字符串参数的前面添加“java.lang”。 -保持公共类 com.mycompany.appName.myClass { java.lang.String myMethod(java.lang.String, java.lang.String, java.lang.String); }
标签: android obfuscation proguard