【问题标题】:Lint check for unused methods (command line)lint 检查未使用的方法(命令行)
【发布时间】:2017-05-12 14:09:42
【问题描述】:

我怎样才能达到以下堆栈溢出问题中描述的相同内容?

How can I find all unused methods of my project in the Android Studio IDEA?

只使用命令行?

./gradlew lint ...

【问题讨论】:

  • 是的,你可以使用./gradlew lint
  • 完全正确,但是在哪个命令之后,我在文档中找不到对命令行中未使用的方法负责的原因
  • 有人知道如何仅使用命令行来实现吗?

标签: java android gradle lint


【解决方案1】:

从命令行运行 lint

您可以使用 Gradle 包装器为您的项目调用 lint 任务,方法是从项目的根目录输入以下命令之一:

在 Windows 上:

gradlew lint

在 Linux 或 Mac 上:

./gradlew lint

您应该会看到类似于以下内容的输出:

> Task :app:lint
Ran lint on variant release: 5 issues found
Ran lint on variant debug: 5 issues found
Wrote HTML report to file:<path-to-project>/app/build/reports/lint-results.html
Wrote XML report to file:<path-to-project>/app/build/reports/lint-results.xml

当 lint 工具完成其检查时,它会提供指向 lint 报告的 XML 和 HTML 版本的路径。然后,您可以导航到 HTML 报告并在浏览器中打开它,如图 2 所示。

you can check the docs "Improve your code with lint checks"

【讨论】:

    【解决方案2】:

    如果您的项目包含构建变体,而您只想为特定的构建变体运行 lint 任务,则必须将变体名称大写并在其前面加上 lint。

    gradlew lintDebug
    

    要了解有关从命令行运行 Gradle 任务的更多信息,[阅读从命令行构建您的应用程序。][1]

      [1]: https://developer.android.com/studio/build/building-cmdline
    

    【讨论】:

      【解决方案3】:

      也许可以尝试使用 linux 管道符号将 ./gradlew lint 与 grep 结合使用,并过滤掉与未使用方法相关的所有问题。

      ./gradlew lint | grep 'unused' 您可以根据需要修改 grep 字符串。

      【讨论】:

        【解决方案4】:

        如果你使用 IntelliJ,有一个简单的技巧可以找到未使用的方法:

        要在整个项目上运行它,请转到分析 -> 按名称运行检查...,键入未使用的声明并选择所需的范围。然后仔细检查输出并在需要时将一些类标记为入口点。

        现在您可以在列表中选择未使用的声明节点,并一次对所有未使用的声明执行安全删除操作。

        或使用此线程中的ProGuard: How to find unused/dead code in java projects

        【讨论】:

        • Proguard 不会“找到”未使用的代码。它删除它。这是另一回事。
        猜你喜欢
        • 2021-01-20
        • 1970-01-01
        • 2013-06-29
        • 2020-08-18
        • 2011-02-21
        • 2011-01-25
        • 2016-02-25
        • 1970-01-01
        • 2013-08-25
        相关资源
        最近更新 更多