最近,我从Firebase Crashlytics中发现了一些HTC /财富 设备崩溃并出现下一个异常,我不明白为什么
val formattedViews: String
get() = String.format(Locale.getDefault(), "%,d %s", viewCount, Util.getString(R.string.views))
我不知道这段代码中怎么会发生这种异常
那些设备有问题吗?
答案 0 :(得分:2)
这是Android 7随附的JDK中的一个错误:https://bugs.openjdk.java.net/browse/JDK-8167567
您要将Locale.getDefault()
传递给format()
,这与完全不指定语言环境相同。唯一已知的解决方法似乎是使用已知良好的语言环境来进行格式设置(例如Locale.US
),但这当然意味着您不会为美国以外的用户获得特定于语言环境的数千种分组。>
或者您可以将格式规范更改为不使用分组(即%d
,不带逗号)。
也许您可以catch
例外并退回到美国格式,否则用户会崩溃?这些人就是这样做的:https://github.com/wordpress-mobile/WordPress-Android/pull/5604/files