如何使用Android配置Proguard,以便它不会删除仅在XML布局中引用的事件处理程序方法?

时间:2011-02-16 19:45:16

标签: java android android-layout proguard

我有许多活动,当用户点击某些UI元素时要执行的处理程序方法被Proguard剥离,因为它无法看到它正被使用。

最佳解决方案是什么?

  • 关闭proguard中的代码缩小功能(不理想,因为它在许多方面都有用)

  • 有没有办法注释我希望它留下的方法?

  • 如何调整proguard配置以永远不会删除以“on”开头的方法?

我尝试添加这一行(即不修剪从我的Activity对象的子类继承的方法),但它没有达到预期的效果。我认为它适用于类,但不适用于它们的方法。

-keep public class * extends com.myapp.CustomActivity

1 个答案:

答案 0 :(得分:2)

对于您要维护的每个方法,在proguard文件中添加另一行:

-keepclassmembers class * {  public void exampleMethodName1(android.view.View);  public void exampleMethodName2(android.view.View); ... }

您可以在以下网址找到此主题:Proguard and reflection in Android