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 
  • Cómo comprobar si un usuario está iniciando sesión por primera vez con Firebase Authentification
  • La restricción UNIQUE falló: base de datos sqlite: android
  • Tabla de SQLite con columnas de columna de enteros
  • Android cómo consultar enorme base de datos en android (tamaño del cursor está limitado a 1 MB)
  • Encriptación de la base de datos de Android
  • Práctica recomendada para eliminar asincrónicamente un elemento ListView / RecyclerView
  • ¿Es mejor pasar los datos por intención o consultar la base de datos cuando sea necesario?
  • Sugerencias sobre cómo guardar datos
  • Android SQLiteException "no such table" durante la compilación: tabla INSERT INTO
  • Bases de datos RDF en Android
  • Sincronización cliente-servidor sobre REST
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.