Как установить 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
Ответы
Ответ 1
Я хотел бы поделиться тем, что я делаю.
Вместо того, чтобы задавать значение 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, поскольку это свойство только для чтения.
Итак, я думаю, вы действительно должны назвать один из вышеперечисленных методов (ошибка, фатальный и т.д.), чтобы переопределить свойство, которое вы хотите
Ответ 2
(Не ответ-ответ, но это то, что я использовал в качестве эквивалентной замены, когда я не мог заставить lintOptions.severityOverrides
работать)
Отбросьте файл lint.xml с той же конфигурацией в корне модуля.
<?xml version="1.0" encoding="UTF-8" ?>
<lint>
<issue id="MissingTranslation" severity="warning" />
</lint>
Вы также получаете более богатый API для настройки предупреждений lint через lint.xml
.
Ответ 3
Map<String, Integer> severityOverrides
В документах, которые вы указали, указано, что тип для серьезности перенаправления должен быть Map<String, Integer>
, когда вы используете две строки. Кроме того, severityOverrides не похоже на метод, а на свойство вместо этого, поэтому вы должны оставить фигурные скобки {}
Что дает вам:
import com.android.builder.model.LintOptions
lintOptions {
severityOverrides ["MissingTranslation": LintOptions.SEVERITY_WARNING]
}