当我通过Analyze在Android Studio中运行lint时 - >检查代码我可以从各种各样的东西中进行选择。
当我转到lint的命令行版本并列出要检查的所有可用内容(lint --list)时,我得到的列表不包括我在Android Studio中看到的所有检查。
例如,我可以在Android Studio中使用ID ConstantConditions运行检查,但无法在命令行上运行它。
~/app [master] lint --check ConstantConditions --xml results.xml app
Invalid id or category "ConstantConditions".
Android Studio是否使用了其他版本的lint?以下是有关lint命令行版本的一些信息:
~/app [master] which lint
lint is /Users/Mark/android-sdk-macosx/tools/lint
~/app [master] lint --version
lint: version 24.3.3
答案 0 :(得分:2)
IntelliJ IDEA有一个"检查"的概念,Android Studio继承了这一点。对于Android Studio的检查引擎报告的任何特定问题,可以有三个理论来源:
股票IDEA检查,Android Studio简单采用的检查。
特定于Android Studio的检查,可能只能从IDE中检测到,而不是从外部Lint工具检测到。
来自Lint的东西。
我不知道#2是否真的被任何东西使用,但它在可能性范围内。
就您的错误而言,要么是非Lint(例如,IDEA检查),要么检查的表示方式与命令行等效项之间存在命名差异。由于这些内容并没有特别详细记录,因此很难说明发生了什么。
但是,一般情况下,不要认为你看到的Android Studio所提出的所有内容都必然来自Lint。