我读过很多关于StopShip
Android Lint Check 和 Gradle 支持
- http://tools.android.com/tips/lint-checks http://tools.android.com/tips/lint-checks
- http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Lint-support 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 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 进行检查 https://stackoverflow.com/questions/28108809/android-lint-enable-checks-with-gradle
- gradle 构建在 lint 任务上失败 https://stackoverflow.com/questions/20699147/gradle-build-fails-on-lint-task
- http://developer.android.com/tools/help/lint.html http://developer.android.com/tools/help/lint.html
- http://developer.android.com/tools/debugging/improving-w-lint.html http://developer.android.com/tools/debugging/improving-w-lint.html
我想使用 SO 中的一些人已经提到的那样,而不是 TODO 或 FIXME 注释,使用它来确保用于开发/调试/测试的代码块不会达到生产。
为此,我想做两件事:
- 启用 StopShip 检查,因为默认情况下禁用
- 将严重性从警告(默认)更改为错误
(假设我们使用abortOnError true
在我们的 gradle 配置中)。
我没能实现这个目标!无论我尝试什么,如果我添加一个,android构建都不会失败// STOPSHIP
在我的代码中评论。这很奇怪,因为在文本编辑器中它突出显示为错误,如果我运行 Lint 检查(分析 > 检查代码...),它会被列为问题之一。
这是我在我的尝试过的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'
}
我还尝试在“文件”>“设置”>“项目设置”>“检查”(或在 Mac 上为“Android Studio”>“首选项”>“检查”)中更改我的 Android Studio 首选项。在这里我检查了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>