今天在使用ormLite創建表的時候,想通過有參構造函數攜帶一個字段進去,沒想到運行起來直接崩潰,並報了下面這個異常
Caused by: java.lang.IllegalArgumentException: Can't find a no-arg constructor for class com.xxx.xxx.xxx.xxx at com.j256.ormlite.table.DatabaseTableConfig.findNoArgConstructor(DatabaseTableConfig.java:196)
at com.j256.ormlite.table.DatabaseTableConfig.getConstructor(DatabaseTableConfig.java:126)
at com.j256.ormlite.table.TableInfo.<init>(TableInfo.java:94)
at com.j256.ormlite.dao.BaseDaoImpl.initialize(BaseDaoImpl.java:154)
at com.j256.ormlite.dao.BaseDaoImpl.<init>(BaseDaoImpl.java:128)
at com.j256.ormlite.dao.BaseDaoImpl.<init>(BaseDaoImpl.java:119)
at com.j256.ormlite.dao.BaseDaoImpl$5.<init>(BaseDaoImpl.java:921)
at com.j256.ormlite.dao.BaseDaoImpl.createDao(BaseDaoImpl.java:921)
at com.j256.ormlite.dao.DaoManager.createDao(DaoManager.java:72)
at com.j256.ormlite.field.FieldType.configDaoInformation(FieldType.java:341)
at com.j256.ormlite.dao.BaseDaoImpl.initialize(BaseDaoImpl.java:201)
at com.j256.ormlite.dao.BaseDaoImpl.<init>(BaseDaoImpl.java:128)
at com.j256.ormlite.dao.BaseDaoImpl.<init>(BaseDaoImpl.java:119)
at com.j256.ormlite.dao.BaseDaoImpl$5.<init>(BaseDaoImpl.java:921)
at com.j256.ormlite.dao.BaseDaoImpl.createDao(BaseDaoImpl.java:921)
at com.j256.ormlite.dao.DaoManager.createDao(DaoManager.java:72)
at com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper.getDao(OrmLiteSqliteOpenHelper.java:279)
看報錯提示是找不到無參構造函數,這個時候再加一個無參的構造函數問題就解決了!
但是爲什麼會這樣,還沒來得及分析,之後找到問題所在再拿出來分析!