如何解决来自`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.3.0-beta01
implementation 'androidx.appcompat:appcompat:1.3.0-beta01'
-
抑制 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 举报,一经查实,本站将立刻删除。