Android 禁止针对特定属性的未使用属性警告



我在整个项目中有一些关于"未使用属性"的linter警告。

  • 属性 elevation 仅用于 API 级别 21 及更高版本(当前最小值为 16(
  • 属性 breakStrategy 仅用于 API 级别 23 及更高版本(当前最小值为 16(
  • 属性 hyphenationFrequency 仅用于 API 级别 23 及更高版本(当前最小值为 16(
  • 属性 letterSpacing 仅用于 API 级别 21 及更高版本(当前最小值为 16(

我知道我可以禁止所有属性的警告。

tools:ignore="UnusedAttribute"

lintOptions {
    disable 'UnusedAttribute'
}

但是,我只想禁止显示特定属性的警告。我试图执行以下操作,但没有成功。

tools:ignore="UnusedAttribute:elevation"

lintOptions {
    disable 'UnusedAttribute:elevation'
}

我在这里、这里、这里或这里的文档中找不到任何提及这一点的内容。有什么办法可以做到这一点吗?

为此,您已通过 lint.xml 配置 lint 并使用正则表达式,有关详细信息,请参阅文档。让我们一步一步来。

首先,指定您将使用文件配置。你build.gradle里有类似的东西

lintOptions {
    lintConfig file("../config/lint/lint.xml")
}

在您的情况下,路径会有所不同。

其次,使用正则表达式排除特定属性。这是lint.xml的示例

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <issue id="UnusedAttribute">
        <ignore regexp="elevation"/>
        <ignore regexp="breakStrategy"/>
    </issue>
</lint> 

另一种方法是为每个用法添加tools:targetApi="n"。其中"n"是属性首次出现的版本。

最新更新