Vaše otázka není tak jasná, ale pokusím se odpovědět.
S největší pravděpodobností vaše databáze:
- Zatím neexistuje a musíte jej vytvořit;
- Váš databázový soubor je pouze pro čtení, musíte jej změnit (Tato otázka může souviset).
Pro #2 místo použití SQLiteOpenHelper#getReadableDatabase()
, použijte SQLiteOpenHelper#getWritableDatabase
Pokud je vaše databáze na externí úložné jednotce, musíte zkontrolovat několik dalších věcí:
- Je externí úložiště aktuálně připojeno? Pokud ne, nebudete mít přístup k db.
- Je připojen pouze pro čtení? Pokud ano, budete to muset změnit.
- Zkontrolovali jste cestu? Je to správné?
Problém může být v kterémkoli z těchto témat.
Chcete-li zkontrolovat, zda je připojen pouze pro čtení, zkuste následující:
/* 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;
}
Převzato odtud.
Další informace o Environment
třídy, nahlédněte do dokumentace.