Wlad Asked:2022-07-19 19:11:11 +0800 CST2022-07-19 19:11:11 +0800 CST 2022-07-19 19:11:11 +0800 CST 电话室窃听[关闭] 772 我改变了类结构中的一些东西。当然,房间开始发誓“现有的数据库结构与新的不匹配”。 从手机中删除应用程序。重新启动。清除项目缓存。重建 Gradle。 一切都无济于事。 在模拟器上一切正常。只需卸载该应用程序,一切正常。 但在真正的手机上它没有帮助。 三星 Galaxy A12 还需要做什么才能从手机中完全删除应用程序? android 1 个回答 Voted Best Answer Vlad Orlinskas 2022-07-19T22:38:43+08:002022-07-19T22:38:43+08:00 您的设备至少是 Android 9,因此您始终可以使用Device File Explorer调试模式找到 db 文件。此工具的选项卡位于工作室的右上角。跟随路径data/data/имя_приложения/databases/ 确保文件已删除。要清除设备上的缓存:пальцем вверх / вниз> Настройки > Приложения . Выберите приложение, выберите « Хранилище» > « Очистить кеш» и « Очистить данные» . 新版本的房间提供自动迁移功能,消除了此类问题 https://developer.android.com/training/data-storage/room/migrating-db-versions#automated 也尝试添加 fallbackToDestructiveMigration val builder = Room.databaseBuilder(context, AppDatabase::class.java, "database.db") builder.fallbackToDestructiveMigration() 如果您升级相对于前一个版本的数据库版本,则 fallbackToDestructiveMigration 将起作用。
您的设备至少是 Android 9,因此您始终可以使用
Device File Explorer
调试模式找到 db 文件。此工具的选项卡位于工作室的右上角。跟随路径data/data/имя_приложения/databases/
确保文件已删除。要清除设备上的缓存:
пальцем вверх / вниз> Настройки > Приложения . Выберите приложение, выберите « Хранилище» > « Очистить кеш» и « Очистить данные» .
新版本的房间提供自动迁移功能,消除了此类问题
也尝试添加 fallbackToDestructiveMigration
如果您升级相对于前一个版本的数据库版本,则 fallbackToDestructiveMigration 将起作用。