产品上线,有法国的玩家反馈,卡死在loading界面,还发了视频。第一反应是,这应该是个例,没有理睬。
一周后,发现留存有问题。分析数据后发现,法国地区的用户,留存几乎为0。所以,这里一定有问题。
第一步,我们先复现这样的情况,
采用法国地区的账号下载,没有问题。
把游戏中的语言切换成法语,没有问题。
把设备中的语言修改为法语,没有问题.
把设备中的地区修改为法国,问题
复现
了。
第二步,采用xcode联调,查看问题
最后发现在在解析地图的时候,被catch了。提示
1 | 未知的char :. |
刚刚开始以为出现了空格,逐步打印日志,并没有发现多余的空格。其实这里的提示是指,无法解析
.
。
这就无法解释了,地图中采用了浮点数,里面存在大量的.
,为什么会不支持.
的解析呢
查阅资料后,发现这里的float.Parse
具有文化环境。法国地区的表达小数是用,
,而不是.
。举例
1 | 数字: 12.34 |
所以法国地图的解析无法识别.
解决方法
在项目启动的时候,处理Culture
1 | CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US"); |