美文网首页
Failed to change locale for db &

Failed to change locale for db &

作者: _夜雨 | 来源:发表于2017-12-15 18:39 被阅读3825次

最近游戏上线,然后Bugly发现一条奇怪日志:

错误日志1

本身这条日志是比较奇怪的,因为首先可以看到下面的堆栈信息:

错误日志2

但是去用出问题的手机测试了一下db的size:

12-15 18:04:11.882: I/(13421): [info][]: db size:4398046507008

db里面无非存储一些账号,不可能会满掉,这样肯定是不可能的。

但是在日志里面可以看到:

错误日志3

这样可以看到,日志貌似在说,是因为切换语言设置造成,去查看了一下SQLiteConnection相关源码

源码解析

虽然不是很懂为什么会切换语言设置造成db错误,但是还是去爆栈查看了一下,确实有人遇到:

参考:

android sqlite : Failed to change locale for db to 'zh_CN'

android.database.sqlite.SQLiteException: Failed to change locale for db ‘/data/data/com.kaola/databases/webview.db’ to ‘zh_CN’.

Failed to change locale for db '/data/data/my.easymedi.controller/databases/EasyMediInfo.db' to 'en_US'

总体来说,还是有不少人遇到,但是都是部分手机会遇到这种情况,而且我即使拿到了Bugly记录的相同型号设备,安装了相同版本的游戏,也不会出现这样的问题。

不过网上解决方案基本大同小异,在打开db的时候,添加一个新的flag就可以解决因为切换Locale导致的db异常:

解决方案

关于这个属性的解释,大概意思就是不再受setLocale()的影响:

解释flag

但是,目前这种方案并没有发到生产环境,因为毕竟连bug目前都还没有复现出来。

相关文章

网友评论

      本文标题:Failed to change locale for db &

      本文链接:https://www.haomeiwen.com/subject/aeydwxtx.html