Я пытаюсь получить код доступа к БД в первый раз, и я получаю некоторые ошибки и буду признателен за помощь.вот что происходит:
1) я создаю новый экземпляр SQLiteOpenHelper, вызывая этот конструктор:
public MyDbOpenHelper(Context context) {
super(context, "some_name.db", null, 1);
}
приведенный выше экземпляр - это переменная myHelper, используемая ниже
2) я вызываю myHelper.getReadableDatabase ()
3), в этот момент Android вызывает мой метод onCreate.моя реализация этого метода начинается следующим образом:
public void onCreate(SQLiteDatabase db) {
db.setLocale(new Locale("en"));
//...
}
4) вышеуказанный вызов не завершается.я получаю следующий дамп:
BEGIN TRANSACTION не удалось установить языковой стандарт
не удалось открыть some_name.db для записи (попробую только для чтения):
android.database.sqlite.SQLiteException: невозможно запуститьтранзакция внутри транзакции
в android.database.sqlite.SQLiteDatabase.native_setLocale (собственный метод)
в android.database.sqlite.SQLiteDatabase.setLocale (SQLiteDatabase.java:1751)
в android.database.sqlite.SQLiteOpenHelper.getWritableDatabase (SQLiteOpenHelper ...
в android.database.sqlite.SQLiteOpenHelper.getReadableDatabase (SQLiteOpenHelper ....
похоже, так как я пытаюсь получить читабельныйdb, когда db еще не существует, поэтому Android пытается его создать и создает доступную для записи базу данных для setLocale ... и поэтому он жалуется на «транзакцию внутри транзакции»? как это должно быть сделано?
спасибо, любая помощь будет оценена