Intereting Posts
Ошибка при вызове приложения Appregistry.runApplication Выбор нескольких элементов в ListView Хранение данных приложений Android на SD-карте Различия между Jar, Android Library и Android Library Project Когда getView () в ArrayAdapter вызывается Как использовать типы сборки (debug vs release) для установки разных стилей и имен приложений? Односторонние и многотактные жесты Android в одной и той же библиотеке смущают GesturesOverlayView? Как исправить «OutOfMemoryError: java heap space» при компиляции приложения MonoDroid в MonoDevelop Фрагмент MyFragment не привязан к действию Погрузчики в Android Honeycomb Вызов в сохраненный объект Java через JNI из другого потока Тестирование на Android: UIAutomator против Espresso Как избежать дублирования имени контакта (данных) при загрузке контактной информации в listview? GridLayout выплескивает журналы «отладочного уровня» с несогласованными ограничениями Обратный вызов загрузки изображения Picasso

Как установить severityOverrides в lintOptions?

У меня есть проект 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' // ... 

В моем приложении я хочу установить

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

Но я получаю ошибку

Ошибка: (34, 0) Метод Gradle DSL не найден: «severityOverrides ()» Возможные причины: В проекте «android» может использоваться версия Gradle, которая не содержит этот метод.

Каков правильный способ установки severityOverrides ?


Версии, которые компилировались, но не имеют желаемого эффекта на этапе :app:lintVitalRelease :

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

а также

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

Solutions Collecting From Web of "Как установить severityOverrides в lintOptions?"

Я хотел бы поделиться тем, что делаю.

Вместо того, чтобы задавать значение severityOverrides, вы можете вызвать один метод для каждого типа флага, который вы хотите установить.

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

В вашем случае вы можете:

 lintOptions { warning "MissingTranslation" } 

Я не уверен, что вы можете вручную установить severityOverrides, поскольку это свойство только для чтения.

Итак, я думаю, вы действительно должны назвать один из методов выше (ошибка, фатальный и т. Д.), Чтобы переопределить свойство, которое вы хотите

(Не ответ-ответ, но это то, что я использовал в качестве эквивалентной замены, когда я не мог получить lintOptions.severityOverrides для работы)

Отбросьте файл lint.xml с той же конфигурацией в корне модуля.

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

Вы также получаете более богатый API для настройки предупреждений lint через lint.xml .

Map<String, Integer> severityOverrides

В документах, которые вы указали, указывается, что тип для серьезности перенаправления должен быть Map<String, Integer> где, когда вы используете две строки. Кроме того, severityOverrides не похоже на метод, а на свойство вместо этого, поэтому вы должны оставить фигурные скобки {} Что дает вам:

 import com.android.builder.model.LintOptions lintOptions { severityOverrides ["MissingTranslation": LintOptions.SEVERITY_WARNING] }