Android ADT 21.0警告:隐式使用默认语言环境
我已经更新ADT到第21节,并在此代码中出现新的警告:
if (e.getMessage().toLowerCase().contains("blabla")) Implicitly using the default locale is a common source of bugs: Use toLowerCase(Locale) instead
所以我尝试:
if (e.getMessage().toLowerCase(Locale.ENGLISH).contains("blabla"))
但错误仍然存在! 这个怎么解决?
你应该使用Locale.getDefault()
特别是如果你不能确定你的文本将永远是英文的。 此外,lint类似的错误通常会在您再次运行lint或清理项目后消失。
你只需要清理你的项目
实际上,当目标是向用户显示文本时,使用Locale.getDefault()
。 但是,这是Lint检查的重点,只要目标是机器可读性/使用情况,就应该使用Locale.US
。 因为如果您没有指定Locale.getDefault()
,则已经隐式使用了Locale.getDefault()
,并且在设备指定了其自己的缺省语言环境时,很难find缺陷。 正如其他人所build议的,似乎你也需要以任何方式清理你的项目。
使用Locale.getDefault()而不是清理你的项目。
这可能是一个Lint错误。 试着削减整行代码
if (e.getMessage().toLowerCase(Locale.ENGLISH).contains("blabla"))
保存,然后粘贴。
清理项目对我不起作用,所以我在我的代码中添加了默认的语言环境:
String.format(Locale.getDefault(), "firstname: %s, lastname: %s", firstName, lastName));
根据您的项目,您可能需要查看区域设置说明。