如何使 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
}
}
是否可以使 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
}
}