如何在Android Studio中检测资源变量拼写错误(例如:“%1 $ s”)

时间:2016-01-13 06:04:04

标签: android android-studio android-resources android-lint

Android崩溃通常是由包含%1$ s的资源引起的。%1$s。{ 令我惊讶的是,Android Studio没有显示这些语法错误:

enter image description here

↑上面的真正语法错误是%1$ s(使应用程序崩溃),而不是Android Studio突出显示的省略号。

如何在Android Studio中检查资源变量拼写错误?
我正在寻找相当于lint --check StringFormatInvalid

背景:许多半自动语言翻译工具会破坏变量,导致应用程序崩溃。

我尝试了什么,不起作用:

Android Studio Lint Invalid format string Highlighting level Inspections

2 个答案:

答案 0 :(得分:3)

在Intellij中

可以创建自定义检查。我不确定Android Studio是否可行。

点击链接: https://www.jetbrains.com/idea/help/creating-custom-inspections.html

编辑:

按照您在下一张图片中看到的链接中的步骤创建检查: enter image description here

在下一张图片中,您可以看到检查的基本配置: enter image description here

在接下来的两张图片中,您可以看到变量的设置。 只有使用过的正则表达式才准备就绪。你必须使用(在$和。之间是一个空格)为一般变量写它: enter image description here enter image description here

答案 1 :(得分:2)

strings.xml<string>之间</string>中的所有内容都只是Android studio和lint的字符串。它不会识别语法错别字。语法错误/拼写错误意味着代码错误,而不是字符串。您需要确保这些是您自己编写的,或者创建自己的脚本以在string.xml文件上执行这些检查。没有内置机制来识别字符串中的代码,然后检查其中的语法错误。

带有省略号的突出显示是因为它是语法(优化)错误。 如果您在strings.xml中出现拼写/语法错误,则会突出显示。以下示例:

enter image description here

但是,如果您打算将格式/代码作为字符串放入,则需要自行处理或使用您需要自己编写的自定义脚本。或者正如 @Rüdiger在对该问题的评论中所提到的那样,您可以编写单元测试用例来检查strings.xml中字符串的完整性和完整性。