Estoy tratando de probar los métodos de inserción y recuperación para mi subclase SQLiteOpenHelper
en una aplicación de Android. La subclase SQLLiteHelper existe en la aplicación bajo prueba y crea una base de datos en la carpeta de instalación. Sin embargo, la prueba de unidad existe en un InstrumentTestCase
en la aplicación de prueba, y me gustaría crear una base de datos de prueba en la aplicación de prueba.no se puede abrir la base de datos en la aplicación de prueba de Android
Por desgracia, si trato de crear/abrir una base de datos en la aplicación de prueba, me sale el siguiente excepción:
android.database.sqlite.SQLiteException: unable to open database file
at android.database.sqlite.SQLiteDatabase.dbopen(Native Method)
at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1584)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:638)
at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:168)
at com.kizoom.android.mybus.storage.MyStopsDatabase.getMyStops(MyStopsDatabase.java:63)
at com.kizoom.mybus.test.MyStopsDatabaseTest.testGetMyStops(MyStopsDatabaseTest.java:24)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:191)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:181)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:164)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:151)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:425)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1520)
The following information appears in LogCat.
02-21 11:52:16.204: ERROR/Database(1454): sqlite3_open_v2("/data/data/com.kizoom.mybus.test/databases/MyStops", &handle, 6, NULL) failed
02-21 11:52:16.204: ERROR/SQLiteOpenHelper(1454): Couldn't open MyStops for writing (will try read-only):
02-21 11:52:16.204: ERROR/SQLiteOpenHelper(1454): android.database.sqlite.SQLiteException: unable to open database file
02-21 11:52:16.204: ERROR/SQLiteOpenHelper(1454): at android.database.sqlite.SQLiteDatabase.dbopen(Native Method)
02-21 11:52:16.204: ERROR/SQLiteOpenHelper(1454): at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1584)
02-21 11:52:16.204: ERROR/SQLiteOpenHelper(1454): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:638)
¿Alguien sabe por qué esto sería un fracaso?
El error sugiere que no está creando su base de datos, o posiblemente la está creando fuera de 'SQLiteOpenHelper.onCreate()' (ya que no se puede abrir) y por lo tanto cuando utiliza otros métodos de conveniencia 'SQLiteOpenHelper', desconocen su base de datos. Por favor, publique su código donde crea la base de datos, y su 'onCreate' para su' SQLiteOpenHelper 'subclasificado. – RivieraKid
La respuesta correcta es esta: http://stackoverflow.com/a/8488722/1432640 – stillwaiting