如何解决构建分析期间 linter 崩溃的问题?

问题描述 投票:0回答:2

我已经安装了 Android Studio,导出项目并且项目正在正确构建。但我正在尝试在终端中构建相同的项目。我在终端中运行

./gradlew build
,但出现错误。

> Task :UniterModule:lintDebug FAILED
Lint found 20 errors, 129 warnings. First failure:

/uniter/repo/repo_pull/mobile/UniterModule/src/main/java/com/uniter/mobile/ui/activities/BaseActivity.kt: Error: Unexpected failure during lint analysis of BaseActivity.kt (this is a bug in lint or one of the libraries it depends on)


The full lint text report is located at:
  /uniter/repo/repo_pull/mobile/UniterModule/build/intermediates/lint_intermediate_text_report/debug/lint-results-debug.txt

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':UniterModule:lintDebug'.
> Lint found errors in the project; aborting build.
  
  Fix the issues identified by lint, or create a baseline to see only new errors:
  ```
  android {
      lint {
          baseline = file("lint-baseline.xml")
      }
  }
  ```
  
  For more details, see https://developer.android.com/studio/write/lint#snapshot

当我使用 ./gradlew -x lint 时,在终端中构建成功

Android Studio 上的设置是:

Gradle JDK

Android Gradle Plugin

Modules

PC 上的设置:

------------------------------------------------------------
Gradle 7.3.3
------------------------------------------------------------

Build time:   2021-12-22 12:37:54 UTC
Revision:     6f556c80f945dc54b50e0be633da6c62dbe8dc71

Kotlin:       1.5.31
Groovy:       3.0.9
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          11.0.2 (Oracle Corporation 11.0.2+9)
OS:           Linux 5.13.0-40-generic amd64

我在 .bashrc 中设置了 Android SDK 的路径

ANDROID_SDK_ROOT="/home/kamil/Android/Sdk/"
export ANDROID_SDK_ROOT
export PATH=$PATH:$ANDROID_SDK_ROOT

你能告诉我问题出在哪里吗

android gradle console lint
2个回答
1
投票

构建失败,因为静态分析器(lint)发现项目中存在问题。

你可以:

  • 修复报告的问题(报告文件路径可以在输出中的“The full lint text report is located at:”行下找到)
  • 通过使用
    @SuppressLint
    注释或在
    lint.xml
    文件中指定来忽略问题
  • 通过在
    build.gradle
    文件中指定以下标志,在构建期间忽略 lint 状态:
android {
...
  lintOptions {
    abortOnError false
  }
}
  • build.gradle
    文件中指定具有当前 lint 状态的基线:
android {
...
  lintOptions {
    baseline file("lint-baseline.xml")
  }
}

有关详细信息,请参阅https://developer.android.com/studio/write/lint


0
投票

我遇到了类似的问题。

在我的例子中,像

BaseActivity.kt
这样的自定义类可能缺少文件顶部的
package
信息。

设置包并再次运行 linter 解决了问题,而不是简单地绕过错误/警告。

© www.soinside.com 2019 - 2024. All rights reserved.