当前位置: 首页 > 知识库问答 >
问题:

Room无法验证数据完整性,即使卸载应用程序后再重新安装

袁高明
2023-03-14
@Database(entities = {existingTable1.class, existingTable2.class, existingTable3.class, existingTable4.class,
        newTable1.class, newTable2.class
        }, version = 1, exportSchema = false)

自那时起,该应用程序处于开发阶段,我使用该应用程序来避免迁移。所以我已经从设备中配置了应用程序,并通过Android Studio安装(运行)。但它的给出跟随错误-

Room无法验证数据完整性。看起来您已经更改了架构,但忘记更新版本号。您可以简单地通过增加版本号来解决这个问题。

在我的清单中,allowBackup设置为false,如下所示-

android:allowBackup="false"

已编辑

我有一件事要提。我在资产文件夹中有一个sqlite数据库文件。我只是复制到相应的应用程序数据库文件夹安装。因此,当需要添加包含大量预填充数据新表时,我只需更新asset文件夹中的sqlite数据库文件,然后调整相关实体并构建/运行项目。这样,它的工作很好,但这一次,它产生了这个问题。

共有1个答案

佟阳飙
2023-03-14

如果您不需要保存数据,也不关心这些数据,只是想告诉Room您正在迁移,那么您可以使用类似这样的.FallbackToDestructiveMigration()

database = Room.databaseBuilder(context.getApplicationContext(),
                        UsersDatabase.class, "Sample.db")
                .fallbackToDestructiveMigration()
                .build();

它会为你做“卸载”。

您可以在这里参考这篇文章

 类似资料:
  • 当我从Android Studio运行时是正常的 但当我关闭并重新打开应用程序时,我得到了错误 IllegalStateException:Room无法验证数据完整性。看起来您已经更改了架构,但忘记更新版本号。您可以通过增加版本号来解决这个问题。 我的第二张桌子

  • 我正在创建我的第一个房间SQLite迁移,我不知道我现在应该做什么,旧数据库中的版本号是2,我正在将其更改为3。当我尝试编译应用程序时,控制台中出现以下错误: 我的数据库代码如下所示: 当我在编写迁移代码时,我得到了“迁移没有正确处理”,直到我修复了所有这些,之后我开始得到数据完整性错误。 提前谢了。

  • 我在项目开发阶段。因此,我现在基本上不需要迁移。我以前有第一个表,第二个表是新添加的表。我已经预装了db。下面是使用的代码。 我还在AndroidManifest中给出了。xml。我不想使用,它也会清除我的预打包数据库。 我在emulator(API级别29)中卸载了该应用程序并运行了该应用程序。我得到了这个错误。 我不明白为什么重新安装会导致这个问题。有人能让我知道我做错了什么吗?

  • 我正在制作一个应用程序,我正在使用Android Room持久性库来处理我的数据库层。房间图书馆的工作像魅力和一切都很好与它。但我希望当用户卸载应用程序时,room创建的数据库被删除。我试着卸载了app,然后重新安装,但不知怎么数据库还在,app还能从中获取旧数据。 编辑我知道我可以使用意图使我的应用程序知道卸载。我想知道的是,是否有的配置来完成这项工作,以及如何在卸载应用程序后数据库仍然存在。

  • 在开发一个针对4.1以上所有版本的Android应用程序时,我观察到卸载我的应用程序并重新安装它并不能清除它的数据。 我试图通过访问来确保数据库在卸载后消失了,而且确实该文件夹在卸载期间被删除了。 我试图删除应用程序通过访问设置页面,通过钛备份和结果是相同的。该设备是运行V6.0的根Nexus5。 这种奇怪行为的原因是什么?

  • 问题内容: 我在使用Google登录我的应用程序+ Firebase时遇到问题。 假设有3个用户在同一时间登录我的应用程序。 我用于检查用户的代码是否已登录: 场景:我用多个帐户签名并注销。一切正常。 但是,当我删除该应用程序并再次安装时。该用户被自动恢复。 我尝试使用登录并卸载应用程序。不过,如果我再次安装它,则直接将我带给用户。 我尝试使用登录并卸载应用程序。不过,如果我再次安装它,则直接将我