Java 启用proguard的Ormlite不';找不到id字段
我在为我的项目启用proguard时遇到问题: java.sql.SQLException:无法删除类adc,因为它没有定义id字段 执行中提到的adc等级如下: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;
@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>();
}