Deine Frage ist nicht so klar, aber ich versuche sie zu beantworten.
Höchstwahrscheinlich entweder Ihre Datenbank:
- Existiert noch nicht, und Sie müssen es erstellen;
- Ihre Datenbankdatei ist schreibgeschützt, Sie müssen sie ändern (Diese Frage könnte damit zusammenhängen).
Für #2, anstatt SQLiteOpenHelper#getReadableDatabase()
zu verwenden verwenden Sie SQLiteOpenHelper#getWritableDatabase
Wenn sich Ihre Datenbank auf einer externen Speichereinheit befindet, müssen Sie noch einige andere Dinge überprüfen:
- Ist der externe Speicher derzeit gemountet? Wenn nicht, können Sie nicht auf die Datenbank zugreifen.
- Ist es als schreibgeschützt gemountet? Wenn ja, müssen Sie dies ändern.
- Haben Sie den Pfad überprüft? Ist es richtig?
Das Problem könnte bei einem dieser Themen liegen.
Um zu überprüfen, ob es als schreibgeschützt gemountet ist, versuchen Sie Folgendes:
/* 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;
}
Von hier genommen.
Weitere Informationen zur Environment
Klasse finden Sie in der Dokumentation.