Tu pregunta no es tan clara, pero intentaré responder.
Lo más probable es que su base de datos:
- Aún no existe y tienes que crearlo;
- Su archivo de base de datos es de solo lectura, debe cambiarlo (esta pregunta puede estar relacionada).
Para el #2, en lugar de usar SQLiteOpenHelper#getReadableDatabase()
, use SQLiteOpenHelper#getWritableDatabase
Si su base de datos está en una unidad de almacenamiento externa, tiene algunas otras cosas que verificar:
- ¿Está montado el almacenamiento externo actualmente? De lo contrario, no podrá acceder a la base de datos.
- ¿Está montado como solo lectura? Si es así, tendrá que cambiar esto.
- ¿Has comprobado la ruta? ¿Es correcto?
El problema podría estar en cualquiera de esos temas.
Para verificar si está montado como de solo lectura, intente lo siguiente:
/* 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;
}
Tomado de aquí.
Para obtener más información sobre el Environment
clase, consulte los documentos.