Как использовать аннотации Java для руководства Proguard Android? - PullRequest
11 голосов
/ 16 декабря 2010

При использовании Proguard с Android методы, которые вызываются только через отражение (например, обратные вызовы, определенные в атрибутах XML onClick), ошибочно удаляются.

Одно из решений для этой проблемы -добавьте каждый затронутый класс и метод в ваш proguard.cfg.

Как я могу использовать аннотации Java для достижения того же эффекта?

Я чувствую, что это сделает самодокументируемый код и позволит избежатьКод и proguard.cfg не синхронизированы.Тем не менее, Android Proguard, похоже, не поставляется с annotations.jar, упомянутым в его документации.

Ответы [ 2 ]

7 голосов
/ 22 декабря 2010

Вы можете получить annotations.jar и annotations.pro из официального выпуска ProGuard. После этого вы сможете использовать аннотации, как обсуждено здесь

Все необходимые опции можно зайти в proguard.cfg.

5 голосов
/ 22 декабря 2010

Я недавно столкнулся с этой проблемой.Вот что вам нужно сделать:

Чтобы исправить события 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, чтобы заставить его работать.Надеюсь, это поможет!

...