24

我想为某些特定资源禁用(新)Android Lint 警告“资源 Xxx 似乎未使用”。

对于其他 Lint 警告,我可以利用 Quick Assist,它显示了 3 个禁用警告的选项,其中一个是针对该特定文件的。

但是这个警告没有显示任何快速帮助,它出现在 Eclipse 中,在文件(定义资源的那个)顶部带有通用的黄色警告颜色。

我还尝试手动编辑 lint.xml 文件,如下所示:

<lint>
  <issue id="UnusedResources">
    <ignore path="res\layout\my_layout.xml" />
  </issue>
<lint>

但没有运气(我从这里的 Android Lint 参考中获取了id)。

4

5 回答 5

29

我今天遇到了这个问题,发现使用 lint 改进代码页面非常有帮助。在“在 XML 中配置 lint 检查”部分中,它描述了如何忽略特定资源:

您可以使用该tools:ignore属性来禁用对 XML 文件的特定部分的 lint 检查。为了让 lint 工具识别此属性,您的 XML 文件中必须包含以下命名空间值:

命名空间 xmlns:tools="http://schemas.android.com/tools"

然后,您可以添加tools:ignore="UnusedResources"要忽略的资源。

于 2013-03-18T16:11:22.843 回答
22

这是一个示例 lint.xml 文件,用于忽略特定 ID 的警告。该文件应放在项目的 app 文件夹中。

<?xml version="1.0" encoding="UTF-8"?>
<lint>

    <!-- Ignore the UnusedResources issue for the given ids -->
    <issue id="UnusedResources">
        <ignore regexp="ga_trackingId|google_crash_reporting_api_key" />
    </issue>
</lint>
于 2016-09-30T09:37:13.247 回答
3

我想你正在寻找这个:

转到首选项 -> Android -> Lint 错误检查

您可以在此处阅读消息的含义,如果需要,请关闭警告。

于 2011-12-21T09:27:29.247 回答
3

从帮助:

抑制警告和错误 Lint 错误可以通过多种方式抑制:

  1. 在 Java 代码中使用 @SuppressLint 注释
  2. 在 XML 文件中使用 tools:ignore 属性
  3. 在源代码中带有 //noinspection 注释
  4. 使用 build.gradle 文件中指定的忽略标志,如下所述
  5. 项目中有一个 lint.xml 配置文件
  6. 通过 --config 标志将 lint.xml 配置文件传递给 lint
  7. 将 --ignore 标志传递给 lint。

要使用注释抑制 lint 警告,请在最接近要禁用的警告实例的类、方法或变量声明上添加 @SuppressLint("id") 注释。id 可以是一个或多个问题 id,例如 "UnusedResources" 或 {"UnusedResources","UnusedIds"},或者它可以是 "all" 以抑制给定范围内的所有 lint 警告。

要禁止带有注释的 lint 警告,请在带有错误的语句之前的行上添加 //noinspection id 注释。

要抑制 XML 文件中的 lint 警告,请在包含错误的元素或其周围元素之一上添加 tools:ignore="id" 属性。您还需要为文档中根元素上的工具前缀定义命名空间,在 xmlns:android 声明旁边: xmlns:tools="http://schemas.android.com/tools"

要在 build.gradle 文件中抑制 lint 警告,请添加如下部分:

android { lintOptions { 禁用 'TypographyFractions','TypographyQuotes' } }

在这里,我们在 disable 命令之后指定一个逗号分隔的问题 ID 列表。您还可以使用警告或错误而不是禁用来更改问题的严重性。

要使用配置 XML 文件抑制 lint 警告,请创建一个名为 lint.xml 的文件并将其放置在应用它的模块的根目录中。

lint.xml 文件的格式类似于以下内容:

<!-- Disable this given check in this project -->
<issue id="IconMissingDensityFolder" severity="ignore" />

<!-- Ignore the ObsoleteLayoutParam issue in the given files -->
<issue id="ObsoleteLayoutParam">
    <ignore path="res/layout/activation.xml" />
    <ignore path="res/layout-xlarge/activation.xml" />
    <ignore regexp="(foo|bar).java" />
</issue>

<!-- Ignore the UselessLeaf issue in the given file -->
<issue id="UselessLeaf">
    <ignore path="res/layout/main.xml" />
</issue>

<!-- Change the severity of hardcoded strings to "error" -->
<issue id="HardcodedText" severity="error" /> </lint>

要从命令行禁止 lint 检查,请传递 --ignore 标志和逗号分隔的要禁止的 id 列表,例如: $ lint --ignore UnusedResources,UselessLeaf /my/project/path

有关更多信息,请参阅 http://g.co/androidstudio/suppressing-lint-warnings

@SuppressLint("UnusedResources")例如,在代码或tools:ignore="UnusedResources"XML 中使用。

于 2018-05-31T15:40:20.560 回答
1

此问题类似,您可以尝试此错误修复。有了这个,您可以忽略来自特定文件夹的警告。我自己没有测试过,因为我的情况不像你的那么严重,而且错误修复似乎使用起来很复杂。

于 2012-05-23T08:08:07.883 回答