问题描述
我只是在玩弄我的架构,自从我更改了架构/实体类后,我根本无法加载我的应用。
我已经删除了测试设备上的应用程序,清除了 AndroidStudio 上的缓存,并重新启动了我的机器,但错误仍然存在。我所做的只是更改 Room 数据库的实体数据类之一的默认值。
如何在不增加版本号和提供迁移路径的情况下强制 AndroidStudio 忘记旧的表架构/实体类?
错误:
java.lang.IllegalStateException: Room cannot verify the data integrity. Looks like you've changed schema but forgot to update the version number. You can simply fix this by increasing the version number.
解决方法
Android Studio 不会保存数据库架构信息,您的应用会保存。因此,您可以清除测试设备上的应用数据,并在不增加版本号的情况下解决问题。
但是,如果不清除应用数据,您可以使用 RoomDatabase.Builder.fallbackToDestructiveMigration()
并增加版本号,如果您很高兴丢失先前数据库的内容,则可以避免实施迁移逻辑。