我宣佈我喜歡的類型是SERIALIZABLE
由ORMLite文件規定,但我仍然得到:ORMLite的dataType = DataType.SERIALIZABLE不起作用
ORMLite不能儲存未知的類接口java.io.可序列化爲字段'task_titles'。序列化字段必須指定的dataType = DataType.SERIALIZABLE
我的代碼如下所示:
@DatabaseField(dataType=DataType.SERIALIZABLE)
private Serializable task_titles;
public User() {
task_titles = new ArrayList<String>();
}
我也用,因爲ArrayList的是序列化的,但沒有運氣嘗試。
private ArrayList<String> task_titles;
其他原因(在我的控制之外的應用限制),它是不是在這種情況下,一個很好的選擇,以創建一個包含任務標題另一個表。下面是完整的異常:
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)
...
啊,對不起,我發現task_titles,因爲它是更短的輸入。我的筆記本電腦發生錯誤,當我寫這篇文章時沒有互聯網連接,所以我在另一臺電腦上輸入了它。 task_titles發生的錯誤與sort_order_of_lists相同。它們都是ArrayList –
KristofferFurst
2013-02-14 15:00:44
是的,我可能會將其定義爲實際錯誤。我手動更新它,但我剛剛在文檔中看到有一種方法可以自動生成它。當我回家時我會嘗試。 – KristofferFurst 2013-02-14 15:07:11
我已經更新了我的答案,並將鏈接放到了table-config文檔中,該文檔顯示瞭如何從實用程序@ Furstan88生成它。 – Gray 2013-02-14 15:12:20