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