数据库读取崩溃问题
KaelInvoker opened this issue · 11 comments
KaelInvoker commented
whataa commented
这个目测是和Pandora无关哦,两者的数据库完全是隔离的。你再检查是不是哪里有多线程的问题
KaelInvoker commented
没有集成之前,从来没报过...
whataa commented
集成之后发生Crash的时候或之前,你有用Pandora来查看过数据库之类的操作吗
KaelInvoker commented
有时候刚一摇,想查看就崩了。relase环境没有报过这个问题
whataa commented
有新进展了我在这里同步
KaelInvoker commented
大佬,有新进展了么?从我这边的崩溃统计上看,release包一次也没出现,debug包已经出现几百次了
whataa commented
抱歉我暂时还没有找到原因和复现路径
KaelInvoker commented
whataa commented
这里无需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,不会再发生现在这种问题了。
KaelInvoker commented
嗯,看了下项目内部的WXSQLiteOpenHelper,里面确实已经做了try-catch.但是现象确实很奇怪,release环境这个问题确实没有上报过
whataa commented
暂时先关闭这个issue,若有其它开发者遇到同样问题再打开