Обычно для внесения изменений в мою базу данных я выполнял следующие шаги:
- Отредактированная база данных в SQLite
- Удалить базу данных в моей папке активов
- Скопируйте и снова вставьте базу данных в папку активов
- Удалить приложение из моего телефона через настройки
- Перестройка / установка приложения
Это работало для меня заранее много раз. Нет, у меня проблема в том, что мой проект больше не имеет доступа к этой базе данных.
Я понял это, удалив базу данных из папки с активами и переустановив приложение. Приложение по-прежнему работает, поэтому оно не обращается к базе данных из папки с активами, которую я использовал заранее, насколько мне известно.
Я использую следующий путь для доступа к нему:
DB_Path = mContext.getDatabasePath(DB_Name).
Log.e("DB_path", DB_Path);
Что дает
.com.example.chris.projectartifact E/DB_path:/data/user/0/com.example.chris.projectartifact/databases/myDB.db
.
Относительно комментария:
Я использую следующий метод для копирования моей базы данных.
Это из учебника, и он работал очень долго.
Из моего понимания, хотя FileOutputStream(DB_Path)
копирует его в именованный путь.
public void copyDataBase(){
try {
InputStream myInput = mContext.getAssets().open(DB_Name);
OutputStream myOutput = new FileOutputStream(DB_Path);
byte[] buffer = new byte[1024];
int length;
while ((length=myInput.read(buffer))>0){
myOutput.write(buffer,0,length);
}
myOutput.flush();
myOutput.close();
myInput.close();
} catch (IOException e){
Log.e("Error:","in CopyDatabase, where are in catch..");
e.printStackTrace();
}
}
Вопросы:
- Где я могу найти свою базу данных в моей структуре?
- Как мне его обновить?
- Новый вопрос: Как удалить скопированную базу данных и обновить ее из папки активов?