android.database.sqlite.SQLiteConstraintException: código de error 19: constraint failedexception

Creé una tabla llamada recursos, pero cuando inserto valores en ella, se genera esta excepción:

android.database.sqlite.SQLiteConstraintException: error code 19: constraint failedexception 

Aquí está mi declaración de la tabla de la creación :

 public static final String DATABASE_CREATE = "CREATE TABLE " + table_resources + "(ID INTEGER PRIMARY KEY, KEY_TYPE text, KEY_ENCODING text, KEY_WIDTH text, KEY_HEIGHT text, KEY_DATA text, KeyIId text)"; 

El siguiente es mi código insert :

 JSONObject show = data.getJSONObject(i); if (show.get("type").equals("resource_updates")) { JSONArray resources = show.getJSONArray("resources"); try { System.out.println("length of resources is is " + resources.length()); for (int resourceIndex = 0; resourceIndex < resources.length(); resourceIndex++) { type = resources.getJSONObject(resourceIndex).getString("type").toString(); encoding = resources.getJSONObject(resourceIndex).getString("encoding").toString(); data1 = resources.getJSONObject(resourceIndex).getString("data").toString(); id = resources.getJSONObject(resourceIndex).getString("id").toString(); try { width = resources.getJSONObject(resourceIndex).getString("width").toString(); } catch (Exception e) { System.out.println(e); width = "null"; } try { height = resources.getJSONObject(resourceIndex).getString("height").toString(); } catch (Exception e) { e.printStackTrace(); height = "null"; } db.insert(type,encoding,width,height, data1,iid); } } catch (Exception e) { e.printStackTrace(); System.out.println(e + "exception"); System.out.println("exception in the resources"); } } 

¿Puede alguien decirme dónde podría ser el problema?

La restricción falló generalmente indica que hiciste algo como pasar un valor null a una columna que declaras como not null cuando creas tu tabla.

Con el fin de obtener más información acerca de los errores SQLite, se puede utilizar ADB dumpsys:

 adb shell dumpsys dbinfo -v 

combinado con grep:

 adb shell dumpsys dbinfo -v | grep executeForLastInsertedRowId 

o grep'ed dos veces:

 adb shell dumpsys dbinfo -v | grep executeForChangedRowCount | grep failed 
  • Almacenar imágenes en android
  • Conectar la aplicación android con la base de datos de un sitio web
  • Android Room: ¿Cómo modelar las relaciones?
  • ¿Puedo descargar un db de SQLite en / sdcard y acceder desde mi aplicación Android?
  • No se puede degradar la base de datos de la versión 2 a 1 incluso después de una nueva instalación y volver a ejecutar
  • Cómo incrementar el campo en la base de datos sqlite android
  • ¿Cómo puedo extraer bases de datos de mi Android en mi escritorio?
  • ¿Cómo puedo comprobar si ya existe un valor en una clase de datos Parse Android
  • Diferencia de rendimiento entre un método query () y rawQuery () en Android
  • Android: Guardando valores booleanos en una base de datos (Principiante)
  • Error al configurar EGL_SWAP_BEHAVIOR en la superficie 0xb14ae7a0, error = EGL_SUCCESS
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.