ProguardとAnnotationsの違いについて質問する

ProguardとAnnotationsの違いについて質問する

アノテーションに依存するデータベース ORM ライブラリである ActiveAndroid を使用するアプリがあります。

@Table(name="test")
public class DatabaseItem extends ActiveRecordBase<DatabaseItem> {

    public DatabaseItem(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    @Column(name="counter")
    public int counter;

}

Proguard をこれでうまく動作させるにはどうしたらいいでしょうか? 現在、Proguard を使用すると、ActiveAndroid で列名が見つからないというエラーが発生します。何らかの理由で注釈が壊れているのだと思います。

関連する Proguard 構成:

#ActiveAndroid
-keep public class com.activeandroid.**
-keep public class * extends com.activeandroid.ActiveRecordBase
-keepattributes Column
-keepattributes Table

ベストアンサー1

Column既存のJavaクラスファイル属性ではありませTableん。少なくとも以下を指定する必要があります。

-keepattributes *Annotation*

参照:ProGuard マニュアル

おすすめ記事