【Android】Room cannot verify the data integrity

Room cannot verify the data integrity

解决方案:

  • 当第一次遇到此消息时,很可能正在使用未发布的数据库版本。
    如果是这种情况,很可能不应该增加数据库版本。
    简单地清除应用数据将移动你通过异常。
    如果的应用程序是在线的,可能需要增加数据库版本并提供适当的迁移。

  • 如果不增加数据库(推荐):应该从Android设置中清除应用程序的应用程序数据。.
    你也可以选择卸载以前的应用版本,然后安装新版本来通过异常。
    后一种方法在某些条件下(例如启用了allow backup)不起作用,

因为清除应用程序数据总是有效的,所以我每次都采用这种方法。
如果确实增加了数据库版本:将需要编写数据库迁移代码来解释数据库模式的任何更改。

编写数据库迁移代码的替代方法是在Room数据库构建器上调用fallbackToDestructiveMigration
这可能不是一个好主意,因为这个更改不应该发布给实际用户。忘记删除此调用,然后忘记升级数据库将导致用户数据丢失。

// Using this fallback is almost certainly a bad ideaDatabase database Room.
databaseBuilder(context, Database.c .fallbackToDestructiveMigrationC) .buildC);Again, neither incrementing the database version nor falling back to destructive migration is necessary if the previous database schema is not live in the wild.

同样,如果以前的数据库模式不在线上,则既不需要增加数据库版本,也不需要回退到破坏性迁移。

猜你喜欢

转载自blog.csdn.net/weixin_42473228/article/details/142726792