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.
- Cómo probar si el cursor está vacío en una consulta SQLiteDatabase
- ¿Es seguro ejecutar una nueva consulta SQLite mientras itera sobre el cursor para una consulta anterior? (Androide)
- Almacenar objetos personalizados (Obj definido por el usuario) en la base de datos SQLite de Android
- ¿Por qué obtengo un error "sqlite3: not found" en un Nexus One enraizado cuando intento abrir una base de datos usando el shell de adb?
- Android - ¿Cuándo insertaOrThrow () lanzar una excepción?
¿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); }
- Insertar datetime en la base de datos sqlite android
- Se eliminó la base de datos de Sqlite cuando borro datos de la aplicación
- Androide sqlite comprobar si se ha insertado un nuevo valor
- Android Eclipse DDMS - No se puede extraer el archivo del dispositivo enraizado
- ¿Cómo determinas si una .sqlite o .sqback está dañada en Java?
- SQLIte DROP tabla ROLL volver
- Obtención del tipo de una columna en SQLite
- Cuente el número de tablas en la base de datos sqlite
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();