Android ADT 21.0警告:隐式使用默认语言环境

roc*_*now 60 android adt

我已将ADT更新为第21节,此代码中出现了新警告:

if (e.getMessage().toLowerCase().contains("blabla"))

Implicitly using the default locale is a common source of bugs: Use toLowerCase(Locale) instead
Run Code Online (Sandbox Code Playgroud)

所以我尝试:

if (e.getMessage().toLowerCase(Locale.ENGLISH).contains("blabla"))
Run Code Online (Sandbox Code Playgroud)

但错误仍然存​​在!如何修复这个?

Gab*_*tto 109

Locale.getDefault()如果你不能确定你的文本总是用英文,你应该特别使用.在您再次运行lint或清理项目后,您所拥有的lint错误通常也会消失.

  • 我清理了项目,错误消失了.谢谢. (22认同)

Mah*_*rad 31

您只需清理项目即可

  • 看我对以前的回答的评论 (3认同)
  • 你能解释一下清理项目“如何”删除这些警告,以及“为什么”用户不应该做一些事情来解决这些警告,而只是清理项目并继续? (2认同)

Dan*_*son 6

实际上,Locale.getDefault()当目标是向用户呈现文本时使用.但是,这是Lint检查的重点,Locale.US只要目标是机器可读性/使用,您就应该使用它.因为Locale.getDefault()如果您没有指定一个,它已经隐式使用,并且当设备指定了自己的默认语言环境时,这可能导致很难找到错误.您似乎也需要像其他人所建议的那样以任何方式清理您的项目.