微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

来自`androidx.appcompat.AppCompatIssueRegistry`的“过时的自定义lint检查”需要更新的API级别

如何解决来自`androidx.appcompat.AppCompatIssueRegistry`的“过时的自定义lint检查”需要更新的API级别

我在一个项目中收到了以下 Android lint 警告:

过时的自定义 lint 检查

../../../../../../../.gradle/caches/transforms-2/files-2.1/fc4398fa701898f50fcec85691d33578/appcompat-1.2.0/jars/lint.jar :Lint 发现了一个需要更新 API 级别的问题注册表 (androidx.appcompat.AppCompatIssueRegistry)。这意味着自定义 lint 检查适用于较新的 lint 版本;请升级 Lint 可以通过“自定义检查”进行扩展:由开发人员和库实施的额外检查,例如强制执行库或公司编码风格指南所需的特定 API 使用。

Lint API 尚不稳定,因此这些检查可能会导致性能下降、停止工作或提供错误结果。

此警告标记自定义 lint 检查,这些检查发现使用过时的 API 并且需要更新以在当前 lint 环境中运行。

它还可能会标记发现使用较新版本 API 的问题,这意味着您需要使用较新版本的 lint(或 Android Studio 或 Gradle 插件等)来处理这些检查。 要抑制此错误,请使用问题 ID“ObsoleteLintCustomCheck”,如抑制警告和错误部分所述。

ObsoleteLintCustomCheck 警告优先级 10/10

我什至不知道这意味着什么,我不使用任何自定义的 lint 东西。它也只出现在应用模块中,而不出现在库模块中。

我刚刚将 my project 从 API 26 提升到 30,并切换到 AndroidX/JetPack。

要重现它,请克隆项目,检查 commit 96273fd8b1af5d5c63603b7df71e0849f518a9e5,切换到 android/ 子目录并运行 ./gradlew lint。我不知道这是否可以减少或如何减少(我是 Android 开发的新手,对它的问题大发雷霆,自 1980 年代后期以来一直在开发软件)。

解决方法

该问题是由应用模块的 appcompat 依赖项中包含的 lint 检查引起的。 lint 检查是使用旧 API 编译的,如警告消息中所述。

解决方法有两种。

  1. 更新到最新版本 1.3.0-beta01

    implementation 'androidx.appcompat:appcompat:1.3.0-beta01'
  2. 抑制 lintOptions 块中的 lint 警告

    
    android {
        lintOptions {
            disable 'ObsoleteLintCustomCheck'
        }
    }
    
,

appcompat 1.2 使用更高版本的 lint 检查,特别是构建工具 4.0

因此,如果您将 appcompat 升级到 1.2,(直接或间接),最好也将您的 com.android.tools.build:gradle 升级到兼容版本。

以下更新应该适用于您最顶层的 build.gradle

classpath 'com.android.tools.build:gradle:4.0.2'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。