2019-07-29 11:56:04.339 6995-7948/ E/AndroidRuntime: FATAL EXCEPTION: pool-8-thread-2
android.database.sqlite.SQLiteConstraintException: FOREIGN KEY constraint failed (code 787)
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 androidx.sqlite.db.framework.FrameworkSQLiteStatement.executeInsert(FrameworkSQLiteStatement.java:51)
at androidx.room.EntityInsertionAdapter.insert(EntityInsertionAdapter.java:97)
at com.adupsihk.downloader.pro.db.VideoDetailInfoDao_Impl.insert(VideoDetailInfoDao_Impl.java:91)
at com.adupsihk.downloader.pro.db.AppDataBaseHelper.insertDetail(AppDataBaseHelper.java:143)
at com.adupsihk.downloader.pro.utils.DownloadManager$1$1.run(DownloadManager.java:139)
at com.adupsihk.downloader.pro.utils.ThreadPool$TaskWithPriority.run(ThreadPool.java:173)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:760)
原因分析:
问题指向了代码:
AppDataBaseHelper.insert(newVideoInfos);
AppDataBaseHelper.insertDetail(newVideoDetailInfos);
我是使用 Room 来操作数据库的,查看了一个 Entity 部分的写法,是没有问题的。
找同事帮忙看,就 debug 来看,在上面第二行代码处打断点,却发现上面一行存入的集合大小是 0,
原来是自己上面忘记了添加数据到 newVideoInfos,但添加了数据到 newVideoDetailInfos。这样,给主表就没有添加数据,但却给附表添加了数据。附表没有在主表里找到对应的外键数据,就报错了。
代码出错了,关键是要仔细查看日志。能够仔细地查看日志,就离解决问题很近了。
先给大家分析下微信浏览器上传图片bug的原因
微信在新版本中采用的是自己的X5内核浏览器,而在较老的版本中还有可能是安卓的原生浏览器。具体的环境我也不太了解,但是经过实际多台安卓机型的测试,我采取的方案可以基本确保在安卓机中微信浏览器的成功上传。苹果机型没问题,因为微信的ios客户端使用的是Safari的内核,没有各种坑,且效果最好。
这里给出一个 WebUploader 官方关于移动端适配的 issues 链接。里面提供的方法确实有效,但就是解决的方案并没有很清楚的展示出来,从该issues中有好几个人用户提出如何修改就能知道了。
开始时遇到的问题
后台使用 Spring MVC [V
android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed异常解决
第一次运行可以运行成功,再往后运行就会出现
android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed的异常情况
通过网友提供的资料:关于android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed的异常
文中大概的意思是说
你定义的自动为PRIMARY,而插入时想插入的值已经在表中存在。导致第一次插入正确,当第二次测试时相当于
错误:Activity com.jixtech.acplay.activitys.HomeActivity has leaked window DecorView@ee21a5f[HomeActivity] that was originally added here
导致错误的是
转载请注明出处:http://blog.csdn.net/crazy1235/article/details/51471280窗体句柄泄漏异常信息如下:xxx has leaked window DecorView@ffd62e7[title] that was originally added here
这类错误一般都是在使用AlertDialog , PopupWindow, ProgressD
今天在做作业的时候,在建立了几个主表,一个有外键的表USE SPJ;
CREATE TABLE S (SNO CHAR(4) NOT NULL,
SNAME CHAR(20) NOT NULL,
STATUS CHAR(10),
CITY CHAR(2
报错信息如下:
(pymysql.err.IntegrityError) (1452, u'Cannot add or update a child row: a foreign key constraint fails
问题的原因是 外键表添加数据时,主键表数据还没有添加进去。因为用的celery插入数据,所以才导致了这样的问题
解决办法:
SET FOREIGN_KEY_CHECKS = 0; # 临时取消外键约束
SET FOREIGN_KEY_CHECKS = 1; # 开启外键约