Twoje pytanie nie jest takie jasne, ale postaram się odpowiedzieć.
Najprawdopodobniej Twoja baza danych:
- Jeszcze nie istnieje i musisz go stworzyć;
- Twój plik bazy danych jest tylko do odczytu, musisz go zmienić (to pytanie może być powiązane).
Dla #2, zamiast używać SQLiteOpenHelper#getReadableDatabase()
, użyj SQLiteOpenHelper#getWritableDatabase
Jeśli Twoja baza danych znajduje się na zewnętrznej jednostce pamięci, musisz sprawdzić kilka innych rzeczy:
- Czy pamięć zewnętrzna jest obecnie podłączona? Jeśli nie, nie masz dostępu do bazy.
- Czy jest zamontowany tylko do odczytu? Jeśli tak, musisz to zmienić.
- Czy sprawdziłeś ścieżkę? Czy to prawda?
Problem może dotyczyć dowolnego z tych tematów.
Aby sprawdzić, czy jest zamontowany w trybie tylko do odczytu, spróbuj wykonać następujące czynności:
/* Checks if external storage is available for read and write */
public boolean isExternalStorageWritable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
/* Checks if external storage is available to at least read */
public boolean isExternalStorageReadable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state) ||
Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
return true;
}
return false;
}
Zaczerpnięte stąd.
Więcej informacji na temat Environment
klasę, zapoznaj się z dokumentacją.