Я много читал о поддержке StopShip
Android Lint Check и Gradle для нее
- http://tools.android.com/tips/lint-checks
- http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Lint-support
- http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.LintOptions.html#com.android.build.gradle.internal.dsl.LintOptions:checkReleaseBuilds
- Проверять флаги Android lint с помощью gradle
- gradle выполнить сбой при выполнении задачи lint
- http://developer.android.com/tools/help/lint.html
- http://developer.android.com/tools/debugging/improving-w-lint.html
Я хотел бы использовать, как некоторые из них здесь, в SO уже упоминались, вместо комментариев TODO или FIXME, используйте его для обеспечения того, чтобы блок кода, предназначенный для разработки/отладки/тестирования, не доходил до производства.
Для этого я хотел бы сделать 2 вещи: - включить проверку StopShip, поскольку она по умолчанию отключена - изменить степень серьезности от предупреждения (по умолчанию) до ошибки
(предполагая, что мы используем abortOnError true
в нашей конфигурации Gradle).
Я не могу этого добиться! Независимо от того, что я пробовал, сборка Android не терпит неудачу, если я добавлю комментарий // STOPSHIP
в свой код. Это нечетно, поскольку в textEditor его выделено как ошибка, и если я запустил проверку Lint (Analyze > Inspect Code...), она указана в качестве одной из проблем.
Вот что я пробовал в своем build.gradle
lintOptions {
checkReleaseBuilds true
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError true
enable 'StopShip'
error 'StopShip'
}
Я также попытался изменить настройки Android Studio в меню "Файл" > "Настройки" > "Настройки проекта" > "Инспекции" (или "Студия Android" > "Настройки" > "Инспекции на Mac" ). Здесь я проверил Code contains STOPSHIP marker
и изменил серьезность на ошибку, но все равно ничего.
Вот что выглядит мой lint.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<issue id="BackButton" severity="warning" />
<issue id="EasterEgg" severity="warning" />
<issue id="FieldGetter" severity="warning" />
<issue id="IconExpectedSize" severity="warning" />
<issue id="RtlCompat" severity="error" />
<issue id="RtlEnabled" severity="warning" />
<issue id="RtlHardcoded" severity="warning" />
<issue id="SelectableText" severity="warning" />
<issue id="StopShip" severity="error" />
<issue id="TypographyQuotes" severity="warning" />
<issue id="UnusedIds" severity="warning" />
</lint>