命令行上的 Android lint 缺少问题组(与 Android Studio 中提供的选项相比)

标签 android lint

当我通过分析 -> 检查代码在 Android Studio 中运行 lint 时,我可以从多种要查找的内容中进行选择。

当我转到 lint 的命令行版本并列出所有要检查的可用内容 (lint --list) 时,我得到的列表不包括我在 Android Studio 中看到的所有检查。

例如,我可以在 Android Studio 中使用 ID ConstantConditions 运行检查,但无法在命令行上运行它。

Android Studio

~/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

最佳答案

IntelliJ IDEA 有一个“检查”的概念,Android Studio 继承了这一点。对于 Android Studio 检查引擎报告的任何给定问题,可以有三个理论来源:

  1. 一种库存 IDEA 检查,Android Studio 简单地采用了这种检查。

  2. Android Studio 特定的检查,针对可能只能从 IDE 内部而不是外部 Lint 工具轻松检测到的内容。

  3. 来自 Lint 的东西。

我不知道 #2 是否真的被任何东西使用,但它完全在可能性范围内。

就您的错误而言,要么不是 Lint(例如 IDEA 检查),要么检查的表示方式与等效的命令行之间存在命名差异。由于这些内容没有特别详细的记录,所以很难说到底发生了什么。

但是,一般来说,不要假设您看到 Android Studio 发出的所有内容都一定来自 Lint。

关于命令行上的 Android lint 缺少问题组(与 Android Studio 中提供的选项相比),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31686335/

相关文章:

flutter - 异步等待 Navigator.push() - 出现 linter 警告 : use_build_context_synchronously

Android lint SharedPreferences.Editor.apply() 警告

java - 使用服务时 MediaPlayer 无法开始播放?

java - .SQLiteCantOpenDatabaseException : unknown error (code 14): Could not open database

android - 在 recyclerView Kotlin -android 中实现 onItemClickLitsner

lint - Elixir:用于确认每个函数都有类型规范的 Lint

android - MediaMetadataRetriever 中媒体持续时间的测量单位是什么

android - 如何减少嵌入式 android 操作系统的启动时间?

安卓工作室 : false Lint warning forcing usage of "Compat" classes when high min SDK (25)

android - : ./gradlew lint 和分析 -> 检查代码之间的区别