我正在寻找一种方法来临时抑制lint
错误或在特定日期或条件之后安排错误。
这里是一些上下文:
我有一个可翻译成多种语言的android应用程序,并且已将其设置为在缺少翻译时lint
失败并显示错误。显然,这样做是为了使未翻译的字符串不会逃脱。
每当有新的string
资源时,它都需要一段时间才能翻译,在此期间lint
失败。
可以禁止这样做,也可以将字符串标记为不可翻译,但这超出了将支票放在首位的目的。
除了该上下文之外,还有很多其他情况,当特定设置为“临时”时。我不喜欢记得回滚所有开关。
该版本位于CI服务器上,经常发布,并且这种情况发生在一个团队中,任何人都可以“暂时”忽略警告。
是否有一种自动的方法来确保在发布时不会忽略任何内容?
更新:
自问了这个问题之后,有人开发了一个库,它可以满足我的要求以及更多:https://github.com/Stuie/papercut
最佳答案
我不知道您如何确定何时应该启动/停止 Lint 。但这也许有帮助:
您可以在gradle脚本中使用 bool(boolean) 值打开/关闭Lint:
android {
lintOptions {
if (lintOn){
checkReleaseBuilds true
abortOnError true
} else {
checkReleaseBuilds false
abortOnError false
}
}
}
将
lintOn=false
添加到gradle.properties中,否则gradle不会将其识别为变量。现在,您可以添加任务并使它在构建任务之前运行:
task preBuild << {
// do stuff to determin if lint should run
lintOn = true
}
build.dependsOn preBuild
现在,在此preBuild任务中,您可以实现一些代码来检查是否应运行lint。
Here是任务可以执行的一些很好的示例。
关于android - 如何安排 `lint`错误(更新:使用Papercut),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38662424/