在Android中使用Proguard時,僅通過反射調用的方法(例如,onClick XML屬性中定義的回調)會被錯誤地去除。如何使用Java註釋來指導Android的Proguard?
One solution此問題是將每個受影響的類和方法添加到您的proguard.cfg。
如何使用Java註釋實現相同的效果?
我覺得這樣做會使代碼自動記錄,避免代碼和proguard.cfg漂移不同步。但是,Android的Proguard似乎沒有提供其文檔中提到的annotations.jar。
在Android中使用Proguard時,僅通過反射調用的方法(例如,onClick XML屬性中定義的回調)會被錯誤地去除。如何使用Java註釋來指導Android的Proguard?
One solution此問題是將每個受影響的類和方法添加到您的proguard.cfg。
如何使用Java註釋實現相同的效果?
我覺得這樣做會使代碼自動記錄,避免代碼和proguard.cfg漂移不同步。但是,Android的Proguard似乎沒有提供其文檔中提到的annotations.jar。
你可從官方發佈的ProGuard annotations.jar
和annotations.pro
。然後您應該能夠使用註釋here
所有必要的選項都可以在proguard.cfg中進行。
最近我遇到了這個問題。以下是你需要做的:
要修復的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做的工作。希望這可以幫助!
雖然您的第一個提示並不完全回答這個問題,但它可能是我的問題的更好解決方案。謝謝! – 2010-12-29 23:09:28
+1:-keepattributes **或-keepattributes * Annotation *。否則,您的註釋仍將被刪除 – Entreco 2012-12-03 12:35:39