美文网首页
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