2

我正在尋找一種方法來暫時抑制lint錯誤或在特定日期或條件後安排錯誤。如何安排「lint」錯誤(更新:使用剪紙)

這裏的一些背景:

我有被翻譯成多國語言的Android應用程序。我將它,以便lint失敗,一個錯誤,如果有遺漏的翻譯。顯然這樣做是爲了使未翻譯的字符串不會逃避狂野。 每當有新的string資源時,需要一段時間纔會翻譯,在此期間lint失敗。 這可以被抑制,或者字符串可以被標記爲不可翻譯,但是這首先打破了檢查的目的。

除此之外,當特定設置爲「臨時」時,還有更多的實例。我不喜歡必須記住每個開關的翻轉。

該版本位於CI服務器上,版本經常發佈,發生在團隊中,任何人都可以「暫時」忽略警告。 有沒有一種自動的方式來確保發佈後不會被忽略?

更新: 既然問這個問題,有人開發了一個庫,不只是我問的多:https://github.com/Stuie/papercut

回答

3

我不知道你是怎麼determin當是時候去/激活皮棉。但是,也許這會有所幫助:
您可以開啓/關閉用布爾在gradle這個腳本切換皮棉:

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 

在這種預生成任務,你現在可以執行一些代碼來檢查,如果你要運行的lint與否。
Here是一個可以完成任務的很好的例子。