小编Hex*_*lex的帖子

Lint:“错误/警告已在基线中列出,但在项目中未找到”多次

我开发了一个 Android 应用程序,并使用 Gerrit 和 Jenkins 与 Lint。

工作流程是:推送到 Gerrit -> 在 Jenkins 上开始构建 -> 通过 Lint 进行验证。

我的 Lint 警告阈值是 1,通常我可以毫无问题地达到它。现在,经过更大的更改后,我收到 4 个错误/警告,其中每两个都是相同的:

  1. 基线文件(lint-baseline.xml)中列出了 2 个错误/警告,但在项目中未找到;也许它们已经被修复了?不匹配的问题类型:ApplySharedPref、ObsoleteLintCustomCheck
  2. 1 个错误/警告在基线文件(lint-baseline.xml)中列出,但在项目中未找到;也许它们已经被修复了?不匹配的问题类型:ApplySharedPref
  3. 56 个错误和 2 个警告被过滤掉,因为它们列在基线文件 lint-baseline.xml 中
  4. 56 个错误和 1 个警告被过滤掉,因为它们列在基线文件 lint-baseline.xml 中

因此,当我超过阈值 3 时,我的构建失败了。

我创建了一个新的 Lint 基线,但错误保持不变。我还检查了 Jenkins 上的新基线文件是否与新创建的文件匹配,结果确实如此。

我的问题:

  1. 为什么我会收到这些错误?特别是前两个,即使我在运行构建之前直接创建了一个新基线
  2. 为什么(相同类型的)错误没有分组在一起?

当然,我可以提高阈值,但这并不能让我理解错误是什么;)

android lint sonatype gerrit jenkins

5
推荐指数
0
解决办法
650
查看次数

确保使用每个枚举值

如果我使用枚举来确定任务的类型.

public enum TaskType {
    TYPE_ONE("Type1"),TYPE_TWO("Type2"),TYPE_THREE("Type3");

    private final String type;

    private StageType(String type) {
        this.type = type;
    }

    @Override
    public String toString() {
        return type;
    }
}
Run Code Online (Sandbox Code Playgroud)

我如何在我的申请中保证一点

if(taskType == TaskType.TYPE_ONE) {
    typeOneProcessing();
} else if(taskType == TaskType.TYPE_TWO) {
    typeTwoProcessing();
} else if(taskType == TaskType.TYPE_THREE) {
    typeThreeProcessing();
}
Run Code Online (Sandbox Code Playgroud)

是否使用了每个枚举值?
我的意思是如果有一天我需要添加一个新的TYPE_FOUR,我需要找到我使用枚举的代码中的每个地方,所以我问自己是否有更好的方法以便我要么避免枚举并使用其他的概念或我可以确保在该段代码中使用枚举的每个值.

java enums

2
推荐指数
1
解决办法
74
查看次数

标签 统计

android ×1

enums ×1

gerrit ×1

java ×1

jenkins ×1

lint ×1

sonatype ×1