如何在lintOptions中设置severityOverrides?

Sim*_*rta 13 android gradle android-gradle-plugin

我有一个Android项目定义

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        // Android plugin for gradle
        // http://google.github.io/android-gradle-dsl
        classpath 'com.android.tools.build:gradle:1.5.0'

        // ...
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,我想设置

android {
    // ...

    lintOptions {
        // http://google.github.io/android-gradle-dsl/1.5/com.android.build.gradle.internal.dsl.LintOptions.html#com.android.build.gradle.internal.dsl.LintOptions:severityOverrides
        severityOverrides {
            ["MissingTranslation": "warning"]
        }

        // ...
Run Code Online (Sandbox Code Playgroud)

但我得到了错误

错误:(34,0)未找到Gradle DSL方法:'severityOverrides()'可能的原因:项目'android'可能正在使用不包含该方法的Gradle版本.

设置severityOverrides的正确方法是什么?


已编译但对:app:lintVitalRelease构建步骤没有预期效果的版本:

import com.android.builder.model.LintOptions
// ...
severityOverrides ["MissingTranslation": LintOptions.SEVERITY_WARNING]
Run Code Online (Sandbox Code Playgroud)

import com.android.builder.model.LintOptions
// ...
severityOverrides.MissingTranslation = LintOptions.SEVERITY_WARNING
Run Code Online (Sandbox Code Playgroud)

W0r*_*0le 13

我想分享一下我在做什么.

您可以为要设置的每种类型的标志调用一个方法,而不是设置severityOverrides.

lintOptions {
    ignore "RtlEnabled", "RtlHardcoded", "RtlSymmetry" ....
    warning "RtlEnabled", "RtlHardcoded", "RtlSymmetry" ....
    error "RtlEnabled", "RtlHardcoded", "RtlSymmetry" ....
    fatal "RtlEnabled", "RtlHardcoded", "RtlSymmetry" ....
    informational "RtlEnabled", "RtlHardcoded", "RtlSymmetry" ....
}
Run Code Online (Sandbox Code Playgroud)

在您的情况下,您可以这样做:

lintOptions {
    warning "MissingTranslation"
}
Run Code Online (Sandbox Code Playgroud)

我不确定你是否可以手动设置severityOverrides,因为它是一个只读属性.

所以,我认为你必须调用上面的方法之一(错误,致命等...)来覆盖你想要的属性