Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQLiteDatabase.insertWithOnConflict引发异常。不应该_Android_Sqlite_Android Sqlite_Conflict - Fatal编程技术网

Android SQLiteDatabase.insertWithOnConflict引发异常。不应该

Android SQLiteDatabase.insertWithOnConflict引发异常。不应该,android,sqlite,android-sqlite,conflict,Android,Sqlite,Android Sqlite,Conflict,我正在开发一个Android应用程序,有时我需要用来自服务器的一些数据更新SQLite数据库 我尝试插入的数据可能会产生冲突,因为已经存在具有相同主键的行。这就是为什么我使用带有“忽略冲突”标志的。其理念是“如果数据不存在,请存储它,如果数据已经存在,请忽略并继续” 但是,当发生冲突时,我看到我的应用程序崩溃,出现以下异常: E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.novadart.booster.android, PID

我正在开发一个Android应用程序,有时我需要用来自服务器的一些数据更新SQLite数据库

我尝试插入的数据可能会产生冲突,因为已经存在具有相同主键的行。这就是为什么我使用带有“忽略冲突”标志的。其理念是“如果数据不存在,请存储它,如果数据已经存在,请忽略并继续”

但是,当发生冲突时,我看到我的应用程序崩溃,出现以下异常:

E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.novadart.booster.android, PID: 1643
    android.database.sqlite.SQLiteConstraintException: foreign key constraint failed (code 19)
            at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)
            at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:782)
            at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:788)
            at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86)
            at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1469)
当文档说明不应该抛出异常时,为什么会出现异常?是虫子还是我遗漏了什么


例如,如果我使用我可以在日志中看到相同的异常,但应用程序没有崩溃(该方法返回-1,就是这样)。

问题在于我插入的行违反了外键约束(引用的行不存在)。出于某种原因,我忽略了这一点


因此,这不是insertOnConflict的错。

@Piyus感谢您的回答,为我指明了正确的方向,尽管它没有解决问题(我没有删除行)。使用此链接。