Android Studio 3.1:gradlew lint无Kotlin类警告,Inspect Code却有
解决Gradle Lint不显示Kotlin警告的问题
这问题我之前也碰到过!其实是因为默认的./gradlew lint任务主要针对Android相关的代码检查,并没有自动包含Kotlin的静态分析规则,而Android Studio的Inspect Code会启用所有适用的检查项(包括Kotlin专属的),所以才会出现这种差异。下面给你几个具体的解决办法:
1. 确保Kotlin Android插件已正确配置
首先确认你的项目已经应用了Kotlin Android插件,这是启用Kotlin lint检查的基础:
- 在项目根目录的
build.gradle(或build.gradle.kts)中添加插件依赖:plugins { id "org.jetbrains.kotlin.android" version "你的Kotlin版本号" apply false } - 在模块级的
build.gradle中应用插件:plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' }
2. 配置Lint任务包含Kotlin规则
你可以在模块级build.gradle的lintOptions中明确指定启用Kotlin相关的检查规则,或者直接启用所有警告:
android { lintOptions { // 启用所有Lint检查(包括Kotlin的正确性、风格类规则) checkAllWarnings true // 也可以精准指定Kotlin规则组,比如只检查正确性和风格问题 check 'KotlinCorrectness', 'KotlinStyle' // 生成HTML报告,方便查看详细结果 htmlReport true htmlOutput file("$project.buildDir/reports/lint-results.html") } }
3. 单独执行Kotlin专属Lint任务
Kotlin有自己独立的lint任务lintKotlin,专门用于检查Kotlin代码的问题。你可以同时执行Android lint和Kotlin lint任务,一次性获取所有警告:
./gradlew lint lintKotlin
执行后,Kotlin的警告会输出在控制台,同时也会生成对应的报告文件在build/reports/lintKotlin/目录下。
4. 检查是否有规则被意外禁用
如果以上步骤都没用,检查项目中的lint.xml文件,确认没有禁用Kotlin相关的规则:
<?xml version="1.0" encoding="UTF-8"?> <lint> <!-- 确保没有类似这样的禁用项 --> <!-- <issue id="KotlinUnusedParameter" severity="ignore" /> --> </lint>
按照上面的步骤配置后,再执行./gradlew lint或者./gradlew lint lintKotlin,应该就能看到Kotlin类的警告了。
内容的提问来源于stack exchange,提问作者just ME
相关产品推荐
相关产品推荐

