GetWritableDatabase llamado recursivamente

Estoy intentando actualizar mi tabla de la base de datos con el código siguiente:

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String query = "ALTER TABLE names ADD COLUMN hidden integer default 0"; dbHelper.getWritableDatabase().rawQuery(query, null); } 

Sin embargo, cuando comienzo la aplicación e intenta actualizar la base de datos consigo la excepción siguiente:

  ...Caused by: java.lang.IllegalStateException: getWritableDatabase called recursively 

¿Alguien sabe cómo puedo evitar este problema y lo que exactamente lo está causando?

Gracias

No llame a getWritableDatabase() . Utilice el que pasó:

 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String query = "ALTER TABLE names ADD COLUMN hidden integer default 0"; db.rawQuery(query, null); } 

¿Por qué? Cuando llama a getWritableDatabase() el OpenHelper está detectando que la base de datos necesita ser actualizada, por lo tanto, inicia la advertencia de recursión que está viendo. En otras palabras, estás en onUpgrade() . Usted llama a getWritableDatabase() , que ve una actualización es necesaria. Si no fuera por el cheque, estaría de vuelta en onUpgrade() , ad infinitum.

  • ¿Qué se puede hacer sobre el hecho de que Android elimina automáticamente los archivos corruptos de SQLite?
  • Agregar nueva tabla a la base de datos después de que la aplicación se haya ejecutado una vez
  • Entender el campo de incremento automático de Android de sqlite
  • Cómo organizar mejor mi clase de base de datos SQLite en Android
  • Sincronización local de SQLite con Firebase
  • SQLite Eliminar Cascade no funciona
  • Consulta SQL de Android con dos cláusulas "Where"
  • Sqlite plugin para Eclipse: depurar la base de datos sqlite en el dispositivo Android en vivo
  • Android: ¿ver bases de datos SQLite en el dispositivo?
  • ¿Qué ORM java es adecuado para el sistema operativo Android y la lista de apoyo perezoso?
  • Android obteniendo cadenas de la base de datos sqlite a autocompletetextview
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.