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));

根据您的项目,您可能需要查看区域设置说明。