У меня возникли серьезные проблемы с попыткой заставить SQLite работать с Android. Я продолжаю получать ошибки, такие как "Неизвестная ошибка (код 14): Не удалось открыть базу данных".Удаление базы данных SQLite перед открытием новой базы данных
Один из методов, который я обнаружил, что избавиться от этой ошибки временно - удалить базу данных, а затем создать ее. Возможно, даже нет базы данных, но вызов функции deleteDatabase(), похоже, устраняет проблему.
File DB_PATH = getApplicationContext().getDatabasePath("test.db");
DB_PATH.mkdirs();
DatabaseHelper dbh = DatabaseHelper.getHelper(this);
SQLiteDatabase db;
SQLiteDatabase.deleteDatabase(DB_PATH);
db = dbh.getWritableDatabase();
DatabaseHelper
public DatabaseHelper(Context ctx) {
super(ctx, ctx.getApplicationContext().getDatabasePath("test.db").getPath(), null, 10);
this.context = ctx;
}
public static synchronized DatabaseHelper getHelper(Context context) {
if (instance == null) {
instance = new DatabaseHelper(context);
}
return instance;
}
Что мне интересно, почему бы удалить базу данных внести изменения и какие-либо рекомендации в целом будут оценены?
Не могли бы вы опубликовать код DatabaseHelper? неясно, что он делает. – Aegis
@Aegis жаль, что я забыл включить его. Это сейчас – PriestVallon
Возможно, сначала попробуйте использовать SQLiteOpenHelper, который обрабатывает создание и обновление базы данных, также вам не нужно указывать путь к базе данных, поскольку она всегда должна быть создана внутри каталога приложения. Методы getWritableDatabase() и getReadableDatabase автоматически создадут для вас базу данных, если она не существует. – Aegis