最近游戏上线,然后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'
总体来说,还是有不少人遇到,但是都是部分手机会遇到这种情况,而且我即使拿到了Bugly记录的相同型号设备,安装了相同版本的游戏,也不会出现这样的问题。
不过网上解决方案基本大同小异,在打开db的时候,添加一个新的flag就可以解决因为切换Locale导致的db异常:
解决方案关于这个属性的解释,大概意思就是不再受setLocale()的影响:
解释flag但是,目前这种方案并没有发到生产环境,因为毕竟连bug目前都还没有复现出来。
网友评论