Java 启用proguard的Ormlite不';找不到id字段

Java 启用proguard的Ormlite不';找不到id字段,java,android,ormlite,android-proguard,Java,Android,Ormlite,Android Proguard,我在为我的项目启用proguard时遇到问题: java.sql.SQLException:无法删除类adc,因为它没有定义id字段 执行中提到的adc等级如下: @DatabaseTable(tableName = "zaplanowane_zlecenie") public class ZaplanowaneZlecenie { @DatabaseField(generatedId = true) private UUID mZaplanowaneZlecenieId;

我在为我的项目启用proguard时遇到问题: java.sql.SQLException:无法删除类adc,因为它没有定义id字段

执行中提到的adc等级如下:

@DatabaseTable(tableName = "zaplanowane_zlecenie")
public class ZaplanowaneZlecenie {
    @DatabaseField(generatedId = true)
    private UUID mZaplanowaneZlecenieId;
    @DatabaseField(columnName = "data")
    private DateTime mZaplanowanaData;
    @DatabaseField(dataType = DataType.SERIALIZABLE)
    private ZlecenieFiltrowane mZaplanowanyAdres;
    @DatabaseField
    @Nullable
    private Double mLatitude;
    @DatabaseField
    @Nullable
    private Double mLongitude;
出现问题的时刻:

mPlannedRepo.deleteForDate(mSelectedData);
代码很简单-删除mDao.queryForEq找到的集合 虽然我没有使用proguard,但这些方法效果很好。但若我启用proguard,我已经提到了异常,我的代码无法工作

我的proguard文件(带有OrmLite的片段):

#ORMLite使用反射
-keepattributes*数据库字段*
-keepattributes*数据库表*
-keepattributes*序列化名称*
-保持类com.j256**
-keepclassmembers类com.j256.*{*;}
-保留enum com.j256**
-keepclassmembers enum com.j256.*{*;}
-保留com.j256接口**
-keepclassmembers接口com.j256.*{*;}
-keepattributes异常、内部类、签名、已弃用、源文件、LineNumberTable、*注释*、封闭方法
#保留helper类及其构造函数
-keep class*扩展com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper
-keepclassmembers类*扩展com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper{
public(android.content.Context);
}

请帮忙!我不知道这里发生了什么。

不要使用这些错误的ProGuard规则(有关有效属性名称的列表,请参阅):

您需要保留使用ORMLite注释进行注释的所有字段/类,如下所示:

-keep @com.j256.ormlite.table.DatabaseTable class * {
    @com.j256.ormlite.field.DatabaseField <fields>;
    @com.j256.ormlite.field.ForeignCollectionField <fields>;
    <init>();
}
-keep@com.j256.ormlite.table.DatabaseTable类*{
@com.j256.ormlite.field.DatabaseField;
@com.j256.ormlite.field.ForeignCollectionField;
();
}

顺便说一句,我想从…添加最后几行。在变量名称中混合波兰语和英语不是一种好的做法。汉克斯,它有帮助:D
-keepattributes *DatabaseField*
-keepattributes *DatabaseTable*
-keepattributes *SerializedName*
-keep @com.j256.ormlite.table.DatabaseTable class * {
    @com.j256.ormlite.field.DatabaseField <fields>;
    @com.j256.ormlite.field.ForeignCollectionField <fields>;
    <init>();
}