Ошибка базы данных Android - getWriteableDatabase - PullRequest
2 голосов
/ 22 ноября 2011

Итак, у меня есть приложение на рынке.Он работает нормально в течение нескольких месяцев.Я обновил его дважды с небольшими исправлениями ошибок и не вносил никаких изменений в базу данных.

Некоторые из моих пользователей получают следующую ошибку:

android.util.Log$TerribleFailure: Can t downgrade read-only database from version 2 to 1: /data/data/myapp/databases/MyAppDB
at android.util.Log.wtf(Log.java:275)
at android.util.Log.wtf(Log.java:254)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:129)

Как я уже говорил, в базе данных не было никаких изменений, если появятся какие-либо обновления.Очевидно, что происходит сбой при вызове метода getWriteableDatabase.Я озадачен тем, почему эта ошибка происходит.

Мое предположение заключается в том, что на телефоне пользователя больше нет свободного места, и, следовательно, доступная для записи база данных не может быть открыта и, таким образом, вылетает из приложения.

Есть идеи?

1 Ответ

2 голосов
/ 22 ноября 2011

База данных sqlite имеет номер версии.Номер версии устанавливается при открытии базы данных.

Например, если вы используете SQLiteOpenHelper, конструктор имеет параметр int version.

Ошибка, возникшая из-за пользователяНа устройстве имеется старая база данных с установленной версией = 2, но при обновлении программы вы пытаетесь открыть эту старую базу данных, запрашивающую версию = 1.Это не разрешено.

Просто установите версию обновленной программы на 2 или более.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...