Cómo establecer severityOverrides en lintOptions?

Tengo un proyecto de Android que define

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

En mi aplicación quiero establecer

 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"] } // ... 

Pero consigo el error

Error: (34, 0) Método Gradle DSL no encontrado: 'severityOverrides ()' Causas posibles: El proyecto 'android' puede estar usando una versión de Gradle que no contenga el método.

¿Cuál es la forma correcta de establecer severityOverrides ?


Versiones que compilaron pero no tienen el efecto deseado en el paso de compilación :app:lintVitalRelease :

 import com.android.builder.model.LintOptions // ... severityOverrides ["MissingTranslation": LintOptions.SEVERITY_WARNING] 

y

 import com.android.builder.model.LintOptions // ... severityOverrides.MissingTranslation = LintOptions.SEVERITY_WARNING 

Me gustaría compartir lo que estoy haciendo.

En lugar de establecer severityOverrides, puede llamar a un método a cada tipo de indicador que desee establecer.

 lintOptions { ignore "RtlEnabled", "RtlHardcoded", "RtlSymmetry" .... warning "RtlEnabled", "RtlHardcoded", "RtlSymmetry" .... error "RtlEnabled", "RtlHardcoded", "RtlSymmetry" .... fatal "RtlEnabled", "RtlHardcoded", "RtlSymmetry" .... informational "RtlEnabled", "RtlHardcoded", "RtlSymmetry" .... } 

En su caso, usted puede hacer:

 lintOptions { warning "MissingTranslation" } 

No estoy seguro si puede establecer manualmente severityOverrides ya que es una propiedad de sólo lectura.

Por lo tanto, creo que realmente debe llamar a uno de los métodos anteriores (error, etc fatal) para anular la propiedad que desea

(No es una respuesta-respuesta, pero esto es lo que usé como reemplazo equivalente cuando no pude obtener lintOptions.severityOverrides para trabajar)

Suelte un archivo lint.xml con la misma configuración en la raíz del módulo.

 <?xml version="1.0" encoding="UTF-8" ?> <lint> <issue id="MissingTranslation" severity="warning" /> </lint> 

También obtiene una API más rica para ajustar avisos de pelusa a través de lint.xml .

Map<String, Integer> severityOverrides

Los documentos a los que enlazó indican que el tipo para severityOverrides debe ser Map<String, Integer> donde como se está utilizando dos cadenas. Además, severityOverrides no parece ser un método, sino una propiedad en su lugar, por lo que debe dejar de lado los rizadores {} Lo que le da:

 import com.android.builder.model.LintOptions lintOptions { severityOverrides ["MissingTranslation": LintOptions.SEVERITY_WARNING] } 
  • Cómo agregar la dependencia de compilación a la ruta de clase javadoc en gradle
  • Creación de una aplicación para Android con targetSdkVersion de 25 y minSdkVersion 19
  • Especificación de las dependencias de prueba con el sistema de compilación de Gradle Android
  • Gradle Error: No se ha especificado ningún valor para la propiedad 'buildConfigPackageName'
  • Grade Error al analizar XML: el prefijo no debe enlazarse a uno de los nombres de espacio de nombres reservados
  • Error al configurar SDK: Error: Módulo 'app': plataforma 'Google Inc.: API de Google: 21' no encontrado
  • Cobertura de código de Android en Jenkins CI
  • ButterKnife error: no se puede encontrar el método de símbolo findRequiredViewAsType
  • Cómo utilizar la tarea deviceCheck para ejecutar pruebas en dispositivos remotos
  • La actualización de Android Studio 2.2 Gradle falla
  • Gradle Error: Índice de cadenas fuera del rango: 0
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.