#android #sqlite #android-room
#Android #sqlite #android-комната
Вопрос:
Я пытаюсь создать базу данных комнат в процессе разработки. Но после внесения некоторых изменений 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 не запрашивал миграции)
- Изменение имени базы данных
-
Отключите allowBackup, fullBackupOnly и fullBackupContent с AndroidManifest.xml
-
Очистить данные приложения и кэш
- Удалить приложение
- Удаление резервных копий с Google Диска
Но Room настаивает на том, что не может проверить целостность данных. Что мне делать?
РЕДАКТИРОВАТЬ: Похоже, я решил проблему. Мне пришлось полностью обновить свою базу данных до версии 6! Я понятия не имею, почему, но это произошло. Если вы создаете базу данных комнат, убедитесь, что ваши схемы правильные, иначе…
Ответ №1:
Учитывая вашу точку зрения, что вы даже ничего не записали в файл базы данных… Вероятно, вы забыли добавить элементы в обработчик аннотаций базы данных. Вы должны попытаться объявить, как в этом примере…
@База данных(сущности = Vehicle.class , version = 1, exportSchema = false) общедоступный абстрактный класс VehicleDatabase расширяет базу данных RoomDatabase {
//Ваш код здесь }
P.S — Если вы когда-нибудь обновите версию базы данных, вам также следует использовать миграцию. Для этого ознакомьтесь с официальной документацией здесь
Ответ №2:
У меня такая же проблема для решения, я удаляю приложение из своего эмулятора / телефона и повторно запускаю приложение project.
Кстати, при изменении схемы БД генерируется ошибка.