SQLite Android. No puede abrir el archivo de base de datos
He encontrado un montón de preguntas sobre este problema, pero no puedo arreglarlo. Tengo un sqlite db en la carpeta de activos:
assets/data/data/{package_name}/databases/mydb.db
Puedo abrir la base de datos y leer los datos antes de cambiar una estructura de la tabla. Trato de desinstalar la aplicación y reinstalar de nuevo, pero tengo la misma excepción.
- Android: La ventana del cursor está llena
- ¿Por qué se ha borrado la base de datos SQLite al borrar los datos de la aplicación de Application Management?
- Cómo eliminar tablas y bases de datos con Sqiltehelper en android
- Cómo guardar la matriz de bytes (byte ) en la tabla SQLite?
- Compartir base de datos SQLite entre 2 aplicaciones de Android?
¿Qué puedo hacer ahora?
Gracias por adelantado
EDITAR
// The Android's default system path of your application database. private static String DB_PATH = "/data/data/{mypagackename}/databases/"; private static String DB_NAME = "mydb.db";
Abrir base de datos (Antes de modificar la estructura de la tabla, añadir algunos campos, no funciona)
public void openDataBase() throws SQLException { // Open the database String myPath = DB_PATH + DB_NAME; myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY); }
- Cómo restablecer la base de datos SqLite en Android?
- ¿Cómo carga todos los campos de una base de datos y ordeno el resultado después de una fila con GreenDao?
- WebView hace que SQLiteDiskIOException
- SQLite es sin tipo?
- ¿Cómo crear un widget de Android con opciones?
- Base de datos externa de Android en la carpeta de activos
- Cursor while loop devuelve cada valor pero el último
- Seleccione un primer carácter distinto basado en la columna de cadena
Mira este tutorial
Explica cómo trabajar con la base de datos precargada. Básicamente, no se puede utilizar la base de datos de los activos, tienes que copiarlo en el almacenamiento de datos internos primero y abrirlo desde allí
En lugar de DB_PATH
codificado DB_PATH
(ya no funcionan en JB), yo recomendaría ir siempre con el método API inbuilt de Android,
mContext.getDatabasePath(DATABASE_NAME).getPath();