2010-12-16 69 views
11

在Android中使用Proguard時,僅通過反射調用的方法(例如,onClick XML屬性中定義的回調)會被錯誤地去除。如何使用Java註釋來指導Android的Proguard?

One solution此問題是將每個受影響的類和方法添加到您的proguard.cfg。

如何使用Java註釋實現相同的效果?

我覺得這樣做會使代碼自動記錄,避免代碼和proguard.cfg漂移不同步。但是,Android的Proguard似乎沒有提供其文檔中提到的annotations.jar。

回答

7

你可從官方發佈的ProGuard annotations.jarannotations.pro。然後您應該能夠使用註釋here

所有必要的選項都可以在proguard.cfg中進行。

5

最近我遇到了這個問題。以下是你需要做的:

要修復的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做的工作。希望這可以幫助!

+0

雖然您的第一個提示並不完全回答這個問題,但它可能是我的問題的更好解決方案。謝謝! – 2010-12-29 23:09:28

+1

+1:-keepattributes **或-keepattributes * Annotation *。否則,您的註釋仍將被刪除 – Entreco 2012-12-03 12:35:39