Java.lang.StringIndexOutOfBoundsException: index = 0 length = 0 en obtener la base de datos sqlite

Estoy tratando de abrir una base de datos SQLite grabable con este código …

public DataAdapterForServieClass open() throws SQLException { db = DBHelper.getWritableDatabase(); return this; } 

Sin embargo estoy consiguiendo el error siguiente en el db = DBHelper.getWritableDatabase(); línea…

 06-10 11:58:13.995: ERROR/AndroidRuntime(548): FATAL EXCEPTION: main 06-10 11:58:13.995: ERROR/AndroidRuntime(548): java.lang.StringIndexOutOfBoundsException: index=0 length=0 06-10 11:58:13.995: ERROR/AndroidRuntime(548): at android.app.ContextImpl.validateFilePath(ContextImpl.java:1518) 06-10 11:58:13.995: ERROR/AndroidRuntime(548): at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:725) 06-10 11:58:13.995: ERROR/AndroidRuntime(548): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:221) 06-10 11:58:13.995: ERROR/AndroidRuntime(548): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:149) 

Este es el código de mi clase DBHelper

 static class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data"); db.execSQL("DROP TABLE IF EXISTS titles"); onCreate(db); } public void onCreate(SQLiteDatabase arg0) { // TODO Auto-generated method stub } } 

Alguien podría ayudarme por favor.

Cuando llame a getWritableDatabase() por primera vez, llamará a los siguientes métodos, según la documentación de Android …

 onCreate(SQLiteDatabase) onUpgrade(SQLiteDatabase, int, int) onOpen(SQLiteDatabase) 

Usted no tiene ningún código en su método onCreate() – tendrá que hacer algo aquí antes de que funcione, como este …

 public void onCreate(SQLiteDatabase database) { database.openOrCreateDatabase("/come/example/mydatabase",null); } 

Mire el método checkDataBase() en el enlace que publicó donde llama openDatabase() – esto hace lo mismo, y es la parte importante de código que le falta. Es necesario crear la base de datos antes de poder hacer algo con ella.

También asegúrese de que en algún lugar de su código está creando su instancia DBHelper, para que llame al método super() . Me gusta esto…

 DBHelper helper = new DatabaseHelper(context); 
  • ¿Cuáles son las extensiones .db-shm y .db-wal en las bases de datos Sqlite?
  • Cómo mostrar todos los datos de la tabla de la base de datos en un TextView en android usando SQLite
  • ¿Cómo elimino una entrada de fila de tabla sqlite por cadena?
  • Base de datos SQLite de Android compartida entre actividades
  • Cómo eliminar una fila de una tabla en SQLite android?
  • ¿Es posible aplicar la clave principal en los campos de texto en la base de datos android
  • Aplicación detenida en Android / SQLITE ERROR /
  • ¿Un cursor SQLite vacío devolverá true para isBeforeFirst, isAfterLast, ambos o ninguno?
  • Cómo eliminar tablas y bases de datos con Sqiltehelper en android
  • ¿Cómo descargar una base de datos SQLite desde un dispositivo Android?
  • SQLiteException - sólo ocurre en algunos dispositivos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.