【发布时间】:2016-12-23 21:06:23
【问题描述】:
我在为我的项目启用 proguard 时遇到问题: java.sql.SQLException:无法删除类 adc,因为它没有定义 id 字段
exepction中提到的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 uses reflection
-keepattributes *DatabaseField*
-keepattributes *DatabaseTable*
-keepattributes *SerializedName*
-keep class com.j256.**
-keepclassmembers class com.j256.** { *; }
-keep enum com.j256.**
-keepclassmembers enum com.j256.** { *; }
-keep interface com.j256.**
-keepclassmembers interface com.j256.** { *; }
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
# Keep the helper class and its constructor
-keep class * extends com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper
-keepclassmembers class * extends com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper {
public <init>(android.content.Context);
}
请帮忙!我不知道这里发生了什么。
【问题讨论】:
-
我会添加stackoverflow.com/questions/9853096/…的最后几行...顺便说一句。在变量名称中混合波兰语和英语不是一个好习惯
-
谢谢,帮了大忙:D
标签: java android ormlite android-proguard