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 :
- Base de datos sqlite - attach
- Logcat error Index -1 solicitado, con un tamaño de 24
- ¿Qué hacer con Cursor después de una consulta SQLite?
- Android: java.lang.IllegalStateException: base de datos xxx.db (conn # 0) ya cerrado
- ¿Qué hace la clase SQLiteOpenHelper con el parámetro de contexto?
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?
- Problema de corrupción de bases de datos precargado en la aplicación de Android
- NPE intermitente al insertar datos en SQLite
- Consulta de mejores prácticas de SQLite para Android
- Actualizar base de datos utilizando mi OpenHelper en greendao
- Android / ORMLite Insertar fila con ID
- ¿Cómo llegar desde un servidor MySql a una aplicación para Android?
- Sincronizar datos en el dispositivo con el servidor?
- Base de datos de Android Intent
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
- No se pudo obtener propiedad desconocida 'assembleRelease' para el proyecto
- Android Fatal señal 11 (SIGSEGV) en 0x00000040 (código = 1) Error