【发布时间】:2018-01-30 04:03:37
【问题描述】:
这是应用程序的代码: https://github.com/sandy-8925/Checklist/tree/room_db
当我构建并启动它时,应用程序总是崩溃并出现以下异常。请注意,我已经有了这个应用程序的早期版本和普通的 Sqlite DB
原因:java.lang.IllegalStateException:迁移不正确 处理项目(org.sanpra.checklist.activity.ChecklistItem)。 预期的: TableInfo{name='items', columns={checked=Column{name='checked', 类型='整数',notNull=true,primaryKeyPosition=0}, _id=Column{name='_id', type='INTEGER', notNull=true, primaryKeyPosition=1}, desc=Column{name='desc', type='TEXT', notNull=false,primaryKeyPosition=0}},foreignKeys=[],indices=[]} 成立: TableInfo{name='items', columns={checked=Column{name='checked', 类型='整数',notNull=true,primaryKeyPosition=0}, _id=Column{name='_id', type='integer', notNull=false, primaryKeyPosition=1}, desc=Column{name='desc', type='text', notNull=true, primaryKeyPosition=0}}, foreignKeys=[], indices=[]}
在 org.sanpra.checklist.dbhelper.ItemsDatabase_Impl$1.validateMigration(ItemsDatabase_Impl.java:66) 在 android.arch.persistence.room.RoomOpenHelper.onUpgrade(RoomOpenHelper.java:75) 在 android.arch.persistence.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onUpgrade(FrameworkSQLiteOpenHelper.java:118) 在 android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:299) 在 android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:194) 在 android.arch.persistence.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableSupportDatabase(FrameworkSQLiteOpenHelper.java:93) 在 android.arch.persistence.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.java:54) 在 android.arch.persistence.room.RoomDatabase.query(RoomDatabase.java:193) 在 org.sanpra.checklist.activity.ItemsDao_Impl.fetchAllItems(ItemsDao_Impl.java:229) 在 org.sanpra.checklist.activity.ChecklistItemsCursorLoader.loadInBackground(ChecklistItemsCursorLoader.java:46) 在 org.sanpra.checklist.activity.ChecklistItemsCursorLoader.loadInBackground(ChecklistItemsCursorLoader.java:32) 在 android.support.v4.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:306) 在 android.support.v4.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:59) 在 android.support.v4.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:47) 在 android.support.v4.content.ModernAsyncTask$2.call(ModernAsyncTask.java:138) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266)
【问题讨论】:
标签: android android-room