Забаглся ROOM в телефоне

Я кое-что поменял в структуре класса. Рум, конечно же, начал ругаться что "существующая структура БД не совпадает с новой".
Приложение с телефона удалил. Перезагружал. Чистил кэш проекта. Пересобирал Gradle.
Все бестолку.
На эмуляторе все работает отлично. Достаточно просто удалить приложение и все работает хорошо.
А вот на реальном телефоне не помогает.
Samsung Galaxy A12
Что еще нужно сделать, чтобы полностью снести приложение с телефона?


Ответы (1 шт):

Автор решения: Vlad Orlinskas

Ваше устройство как минимум на андроид 9, так что вы всегда можете найти файлы БД с помощью Device File Explorer в debug режиме. Вкладка с этим инструментом находится на правом углу студии. Проследуйте по пути data/data/имя_приложения/databases/

Убедитесь, что файлы удаляются. Чтобы удалить кеш на вашем устройстве: пальцем вверх / вниз> Настройки > Приложения . Выберите приложение, выберите « Хранилище» > « Очистить кеш» и « Очистить данные» .

В новой версии room доступны автомиграции, которые исключают подобные проблемы

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 сработает если повысить версию базы, относительно предыдущей.

→ Ссылка