在Android上使用Proguard时,只会通过反射调用的方法(例如,在onClick XML属性中定义的回调)被错误地删除。
One solution这个问题是将每个受影响的类和方法添加到proguard.cfg。
如何使用Java注释来达到同样的效果?
我觉得这会使代码自我记录,并且会避免代码和proguard.cfg漂移不同步。但是,Android的Proguard似乎没有附带文档中提到的annotations.jar。
答案 0 :(得分:7)
您可以从官方ProGuard版本中检索 annotations.jar
和 annotations.pro
。然后,您应该能够使用所讨论的注释here
所有必要的选项都可以在proguard.cfg中找到。
答案 1 :(得分:5)
我最近遇到了这个问题。以下是您需要做的事情:
要修复onClick事件,请将其添加到Proguard设置
-keepclassmembers class * extends android.app.Activity{
public void *(android.view.View);
}
保持注释添加
-keepattributes **
或-keepattributes *Annotation*
更多信息可以在这里找到http://www.simpligility.com/2010/12/hints-for-using-proguard-on-your-android-app/我使用maven-android-plugin编译Android应用程序,这篇文章几乎总结了我为android做的工作。希望这有帮助!