如何使 Android Studio 构建因 lint 错误而失败

How to make Android Studio build fail on lint errors

是否可以使 Android Studio 构建因 lint 检查错误而失败? 当我将图标从 .png 转换为可绘制的矢量时,ImageViews 出现问题。xml 有时我忘了改变 android:src="@drawable/ic_minus"app:srcCompat="@drawable/ic_minus" 该应用程序在较旧的 OS 设备上崩溃。

?

如果有 lint 检查,您可以将严重性更改为 FATAL,然后在构建 APK 的发布版本时它应该会失败。

android {
  lintOptions {
    fatal 'MY_LINT_CHECK_ID'
  }
}

您也可以执行 Gradle lint 任务,但会失败。如果您还想要警告让您的构建失败,您可以使用它。

android {
  lintOptions {
    warningsAsErrors true
  }
}

您还可以在 module/app 级别 build.gradle 文件

中的 android 块中使用以下代码

对于build.gradle

android {
    applicationVariants.all {
        // Example lint task, your verification task can be anything
        def lintTask = tasks["lint${name.capitalize()}"]
        assembleProvider.get().dependsOn(lintTask/*, detekt*/) // add list of all the tasks which should fail the build
    }
}

对于build.gradle.kts(Kotlin DSL)

android {
    applicationVariants.all {
        // Example lint task, your verification task can be anything
        val lintTask = tasks["lint${name.capitalize()}"]
        assembleProvider.get().dependsOn.addAll(listOf(lintTask/*, tasks["detekt"]*/))  // add list of all the tasks which should fail the build
    }
}

上面的代码使构建 assemble 任务 运行 当我们 运行 构建应用程序或 运行 应用程序时,它取决于列出的验证任务,因此在以下情况下失败这些任务失败了

确保您的验证任务(在我们的例子中是 lint 任务)设置为在 运行 时构建失败,并且在其中发现了一些问题。所有验证任务都有自己的标志来启用此行为。

对于 lint,您可以启用构建失败警告,如下所示(build.gradle.kts 对于 Kotlin DSL)

android {
    lint {
        isWarningsAsErrors = true
    }
}