android - 如何从手机中完全删除 Room 主表(模式)
问题描述
我正在尝试建立一个开发中的 Room 数据库。但是在进行了一些更改之后,Room 不断抛出这个错误:
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.
问题是:我什至没有写入数据库!因此,应该没有任何问题,因为没有数据可以检查完整性。在搜索有关如何从我的测试手机中完全删除 Room 模式的答案后,我尝试了以下方法:
- 增加版本号(房间没有要求迁移)
- 更改数据库名称
禁用 AndroidManifest.xml 中的 allowBackup、fullBackupOnly 和 fullBackupContent
清除应用程序数据和缓存
- 卸载应用程序
- 删除 Google Drive 上的备份
但 Room 坚称无法验证数据的完整性。我应该怎么办?
编辑:看起来我解决了这个问题。我不得不将我的数据库一直升级到版本 6!我不知道为什么,但那发生了。如果您正在制作 Room 数据库,请确保您的架构正确,否则...
解决方案
考虑到您甚至没有向数据库文件写入任何内容的观点......您可能忘记在数据库的注释处理器中添加元素。你应该尝试像这个例子一样声明......
@Database(entities = Vehicle.class, version = 1, exportSchema = false) 公共抽象类 VehicleDatabase 扩展 RoomDatabase {
//你的代码在这里}
PS - 如果您曾经升级数据库版本,那么您也应该使用迁移。对于此检查官方文档here
推荐阅读
- laravel - 在 laravel-8 中查看不同文件夹中的数据
- python - 在 Python 中循环获取列中的值
- sql - vb.net 中 OleDbCommand 中的 Where 子句
- firebase - 如何在 Firebase 实时数据上保护用户数据
- javascript - vue-css-donut-chart 问题 safari 15 仅加载 2 个部分
- postgresql - Postgress 数据库用作数据块的外部配置单元元存储:“致命:抱歉,已经有太多客户端”
- python - 如何使 3D matplotlib 艺术家(线条、文本、路径)始终可见?
- conv-neural-network - 如何在分类应用程序中实施 Grad-CAM
- python - 为什么我不能直接将具有 NaN 值的列替换为另一列中的值?
- c# - 具有多个 LEFT JOIN 的 Linq 查询