Din fråga är inte så tydlig, men jag ska försöka svara.
Troligtvis din databas antingen:
- Finns inte än, och du måste skapa den;
- Din databasfil är skrivskyddad, du måste ändra den (den här frågan kan vara relaterad).
För #2, istället för att använda SQLiteOpenHelper#getReadableDatabase()
, använd SQLiteOpenHelper#getWritableDatabase
Om din databas finns på en extern lagringsenhet har du några andra saker att kontrollera:
- Är den externa lagringen för närvarande monterad? Om inte kan du inte komma åt db.
- Är den monterad som skrivskyddad? Om så är fallet måste du ändra detta.
- Har du kontrollerat sökvägen? Stämmer det?
Problemet kan bero på något av dessa ämnen.
För att kontrollera om den är monterad som skrivskyddad, prova följande:
/* 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;
}
Taget härifrån.
För mer information om Environment
klass, se dokumenten.