使用环境:
本地数据库操(插入操作)
Caused by: java.lang.IllegalStateException: Couldn't read row 0, col 10 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
at android.database.CursorWindow.nativeGetLong(Native Method)
at android.database.CursorWindow.getLong(CursorWindow.java:511)
at android.database.CursorWindow.getInt(CursorWindow.java:578)
at android.database.AbstractWindowedCursor.getInt(AbstractWindowedCursor.java:72)
at com.hongsen.MobileMedicalSystem.greendao.RyzpDao.readEntity(RyzpDao.java:205)
at com.hongsen.MobileMedicalSystem.greendao.RyzpDao.readEntity(RyzpDao.java:18)
at org.greenrobot.greendao.AbstractDao.loadCurrent(AbstractDao.java:565)
at org.greenrobot.greendao.AbstractDao.loadAllUnlockOnWindowBounds(AbstractDao.java:498)
at org.greenrobot.greendao.AbstractDao.loadAllFromCursor(AbstractDao.java:480)
at org.greenrobot.greendao.AbstractDao.loadAllAndCloseCursor(AbstractDao.java:203)
at org.greenrobot.greendao.InternalQueryDaoAccess.loadAllAndCloseCursor(InternalQueryDaoAccess.java:37)
at org.greenrobot.greendao.query.Query.list(Query.java:89)
at org.greenrobot.greendao.query.QueryBuilder.list(QueryBuilder.java:427)
at com.hongsen.MobileMedicalSystem.moudles.ui.MainActivity.UpdateFace(MainActivity.java:276)
at com.hongsen.MobileMedicalSystem.moudles.ui.MainActivity.initEventAndData(MainActivity.java:171)
at com.hongsen.MobileMedicalSystem.base.BaseActivity.onCreate(BaseActivity.java:51)
at com.hongsen.MobileMedicalSystem.moudles.ui.MainActivity.onCreate(MainActivity.java:149)
at android.app.Activity.performCreate(Activity.java:6266)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
解决方法:
这上面报错意思是说本地数据库格式冲突,你创建的Bean类,跟本地数据库声明的Bean类冲突。
本文针对的是GreenDao的使用
仔细回想后发现,之前改了下Bean类的唯一属性声明:@Index(unique = true)
为了本地的统一,应当删除BeanDao,重新生成Dao文件后才能正常使用。
我的错在于: 只是修改了Bean类的数据库属性,但是没有删除Dao文件一遍同步本地数据库。
QQ群: 88627109
更多讨论,欢迎来访!