whataa/pandora

数据库读取崩溃问题

KaelInvoker opened this issue · 11 comments

image
项目中用到了weex,经常会报这种错误

这个目测是和Pandora无关哦,两者的数据库完全是隔离的。你再检查是不是哪里有多线程的问题

没有集成之前,从来没报过...

集成之后发生Crash的时候或之前,你有用Pandora来查看过数据库之类的操作吗

有时候刚一摇,想查看就崩了。relase环境没有报过这个问题

有新进展了我在这里同步

大佬,有新进展了么?从我这边的崩溃统计上看,release包一次也没出现,debug包已经出现几百次了

抱歉我暂时还没有找到原因和复现路径

库里面操作数据库的时候,加个try catch是不是就能解决?
image

这里无需catch,异常会由调用executeSQL方法的地方捕获,所以和这个Crash不相关。

这里我再详细说下我的结论和看法:我还是认为和Pandora没有关系,因为上图方法的第一行 openDatabase 方法会创建一个新的 SQLiteDatabase 实例,然后无论如何在每次执行完后都会在finally里面close掉。并非Weex所持有的那个。按照你第一张的Crash截图来看,“attempt to re-open an already closed db...” 这类BUG只会发生在同一个DB实例的情况下,可能由于多线程原因导致提前close。

另外你的项目里应该不是用的最新的weex,我翻阅了下Weex对应的最新WXSQLiteOpenHelper类,其中已经将ensureDatabase方法内部进行了try-catch,不会再发生现在这种问题了。

嗯,看了下项目内部的WXSQLiteOpenHelper,里面确实已经做了try-catch.但是现象确实很奇怪,release环境这个问题确实没有上报过

暂时先关闭这个issue,若有其它开发者遇到同样问题再打开