11

Proguard を Android で使用すると、リフレクションを介してのみ呼び出されるメソッド (onClick XML 属性で定義されたコールバックなど) が誤って取り除かれます。

この問題の解決策の 1 つは、影響を受ける各クラスとメソッドを proguard.cfg に追加することです。

Java アノテーションを使用して同じ効果を得るにはどうすればよいですか?

これにより、コードが自己文書化され、コードと proguard.cfg のずれが回避されると思います。ただし、Android の Proguard には、ドキュメントに記載されている annotations.jar が同梱されていないようです。

4

2 に答える 2

7

ProGuardの公式リリースからannotations.jar取得できます。これで、ここでannotations.pro説明するようにアノテーションを使用できるようになります。

必要なすべてのオプションはproguard.cfgに入れることができます。

于 2010-12-22T00:15:07.223 に答える
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が機能するようにするために私が何をするかを要約します。お役に立てれば!

于 2010-12-22T04:56:58.957 に答える