android{
lintOptions{
// 相关配置
}
}
我们知道 gradle 的配置都会映射到一个java类,全局搜索LintOptions,我们发现com.android.build.gradle.internal.dsl包下有一个LintOptions.java文件,这个就是我们映射的Java类
通过命令行检测:
# 可以追加变体,比如 app:lintRelease 和 app:lintDebug
gradlew app:lint
手动检测(推荐)
在菜单栏中依次选择Code > Inspect Code,查看检测范围和配置文件,点击ok运行检查

查看检测结果

如果希望可以忽略一些检测项或调整其严重等级,可以通过修改配置文件lint.xml方式,lint的工作方式如下图

可以手动创建lint.xml文件到Android项目的根目录下,配置文件定义的id优先默认配置
<lint>
<issue id="IconMissingDensityFolder" severity="ignore" />
<issue id="ObsoleteLayoutParam">
<ignore path="res/layout/activation.xml" />
<ignore path="res/layout-xlarge/activation.xml" />
issue>
<issue id="UselessLeaf">
<ignore path="res/layout/main.xml" />
issue>
<issue id="HardcodedText" severity="error" />
lint>
另外也可以通过Configure跳转到Androidstudio自带的默认配置文件

abortOnError:发现错误,停止构建
lintOptions{
abortOnError false // 关闭该判断(默认开启),不建议这么做
}
absolutePaths:报告文档是否输出全路径,默认相对路径
lintOptions{
absolutePaths false
}
生效对象包括build 中输出的蓝色定位URL
check:设置只检查的类型
可以进入sdk\tools\bin\下执行lint --list查看所有支持的检测项,也可以通过lint --show 命令长某一检测项的详细介绍
lintOptions{
check 'UnsuedResource'// 只检查未使用资源
}
其它属性可以参考官网按需查看
首先我们需要知道,规则是死的,代码是活的,并非所有的Lint警告都需要通过修改代码来解决,有些警告可以被当成善意的提醒,我们可以通过一些标注来忽略它
如果是Java代码,我么可以通过@SuppressLint("警告名称")忽略
@SuppressLint(“HandlerLeak”)
@SuppressLint(“all”) //如果不清楚警告名称,可以直接忽略all
如果是xml文件,可以通过tools:ignore="警告名称"忽略
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="TextFields,HardcodedText,UselessParent">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="all">