gpt4 book ai didi

java - 启用了 proguard 的 Ormlite 找不到 id 字段

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:14:34 26 4
gpt4 key购买 nike

我在为我的项目启用 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 文件(OrmLite 的 fragment ):

# 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);
}

求助!我不知道这里发生了什么。

最佳答案

而不是使用这些不正确的 ProGuard 规则(有关有效属性名称的列表,请参阅 ProGuard manual):

-keepattributes *DatabaseField*
-keepattributes *DatabaseTable*
-keepattributes *SerializedName*

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

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

关于java - 启用了 proguard 的 Ormlite 找不到 id 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38992701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com