问题 如何使用Java注释来指导Android的Proguard?


在Android上使用Proguard时,只会通过反射调用的方法(例如,在onClick XML属性中定义的回调)被错误地删除。

一个解决方案 这个问题是将每个受影响的类和方法添加到proguard.cfg中。

如何使用Java注释来实现相同的效果?

我觉得这会使代码自我记录,并避免代码和proguard.cfg漂移不同步。但是,Android的Proguard似乎没有随其文档中提到的annotations.jar一起提供。


12179
2017-12-16 08:51


起源



答案:


你可以检索 annotations.jar 和 annotations.pro 来自官方的ProGuard版本。然后,您应该能够使用所讨论的注释 这里

所有必要的选项都可以在proguard.cfg中找到。


7
2017-12-22 00:15





我最近遇到了这个问题。这是你需要做的:

要修复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做的工作。希望这可以帮助!


5
2017-12-22 04:56



虽然你的第一个提示并没有完全回答这个问题,但它可能是解决我问题的更好方法。谢谢! - Luís Oliveira
+1代表:-keepattributes **或-keepattributes * Annotation *。否则,您的注释仍将被删除 - Entreco


答案:


你可以检索 annotations.jar 和 annotations.pro 来自官方的ProGuard版本。然后,您应该能够使用所讨论的注释 这里

所有必要的选项都可以在proguard.cfg中找到。


7
2017-12-22 00:15





我最近遇到了这个问题。这是你需要做的:

要修复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做的工作。希望这可以帮助!


5
2017-12-22 04:56



虽然你的第一个提示并没有完全回答这个问题,但它可能是解决我问题的更好方法。谢谢! - Luís Oliveira
+1代表:-keepattributes **或-keepattributes * Annotation *。否则,您的注释仍将被删除 - Entreco