我正在寻找一种方法来临时抑制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/

10-14 19:42