gpt4 book ai didi

java - ORMLite dataType=DataType.SERIALIZABLE 不起作用

转载 作者:行者123 更新时间:2023-11-30 09:26:44 26 4
gpt4 key购买 nike

我已按照 ORMLite 文档的规定将我的类型声明为 SERIALIZABLE,但我仍然得到:

ORMLite can't store unknown class interface java.io.Serializable for field 'task_titles'. Serializable fields must specify dataType=DataType.SERIALIZABLE

我的代码是这样的:

@DatabaseField(dataType=DataType.SERIALIZABLE) 
private Serializable task_titles;

public User() {
task_titles = new ArrayList<String>();
}

我也尝试使用,因为 ArrayList 是可序列化的,但运气不好。

private ArrayList<String> task_titles; 

由于其他原因(我无法控制的应用程序限制),在这种情况下创建另一个包含任务标题的表不是一个好的选择。这是完整的异常(exception):

02-13 21:07:12.593: E/AndroidRuntime(15500): java.lang.RuntimeException: Unable to start activity ComponentInfo{lemonhat.snote/lemonhat.snote.MainActivity}: java.lang.RuntimeException: Could not create RuntimeExcepitionDao for class class lemonhat.snote.db.User
02-13 21:07:12.593: E/AndroidRuntime(15500): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
...
02-13 21:07:12.593: E/AndroidRuntime(15500): Caused by: java.lang.RuntimeException: Could not create RuntimeExcepitionDao for class class lemonhat.snote.db.User
02-13 21:07:12.593: E/AndroidRuntime(15500): at com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper.getRuntimeExceptionDao(OrmLiteSqliteOpenHelper.java:260)
02-13 21:07:12.593: E/AndroidRuntime(15500): at lemonhat.snote.db.DatabaseHelper.getUserDataDao(DatabaseHelper.java:109)
02-13 21:07:12.593: E/AndroidRuntime(15500): at lemonhat.snote.MainActivity.onCreate(MainActivity.java:80)
...
02-13 21:07:12.593: E/AndroidRuntime(15500): Caused by: java.sql.SQLException: ORMLite can't store unknown class interface java.io.Serializable for field 'sort_order_of_lists'. Serializable fields must specify dataType=DataType.SERIALIZABLE
02-13 21:07:12.593: E/AndroidRuntime(15500): at com.j256.ormlite.field.FieldType.<init>(FieldType.java:183)
02-13 21:07:12.593: E/AndroidRuntime(15500): at com.j256.ormlite.table.DatabaseTableConfig.convertFieldConfigs(DatabaseTableConfig.java:236)
02-13 21:07:12.593: E/AndroidRuntime(15500): at com.j256.ormlite.table.DatabaseTableConfig.extractFieldTypes(DatabaseTableConfig.java:101)
02-13 21:07:12.593: E/AndroidRuntime(15500): at com.j256.ormlite.dao.BaseDaoImpl.initialize(BaseDaoImpl.java:151)
...

最佳答案

ORMLite can't store unknown class interface java.io.Serializable for field 'sort_order_of_lists'. Serializable fields must specify dataType=DataType.SERIALIZABLE

我错过了什么吗?此错误与字段 sort_order_of_lists 有关,但您显示的是另一个字段:

@DatabaseField(dataType=DataType.SERIALIZABLE) 
private Serializable task_titles;

我怀疑 sort_order_of_lists 缺少 dataType=DataType.SERIALIZABLE 注释字段。该字段是否在基类中?

如果这不是问题,那么我怀疑您正在使用 Android 的表配置功能,您需要重新生成表配置,因为它与您的对象不同步。有关此功能的更多详细信息,请参阅链接:

http://ormlite.com/docs/table-config

关于java - ORMLite dataType=DataType.SERIALIZABLE 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14862372/

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