我正在将lint项目应用于存在问题但没有检测到问题的应用程序模块。
lintChecks project(':customlint')
ImportsIssueRegistry.kt
class ImportsIssueRegistry : IssueRegistry() {
override val issues: List<Issue>
get() = listOf(
SyntheticImportIssue.ISSUE,
AndroidLogImportIssue.ISSUE
)
override val api: Int
get() = CURRENT_API
}
customlint/build.gradle
apply plugin: 'java-library'
apply plugin: 'kotlin'
ext.lintVersion = '26.4.2'
dependencies {
//noinspection DifferentStdlibGradleVersion
compileOnly "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
compileOnly "com.android.tools.lint:lint-api:$lintVersion"
compileOnly "com.android.tools.lint:lint-checks:$lintVersion"
testImplementation 'junit:junit:4.13-beta-3'
testImplementation "com.android.tools.lint:lint:$lintVersion"
testImplementation "com.android.tools.lint:lint-tests:$lintVersion"
testImplementation "com.android.tools:testutils:$lintVersion"
}
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
jar{
manifest{
attributes 'Lint-Registry-V2': '[package name].ImportsIssueRegistry'
}
}
我试过什么?
- 正在查看 gradle 版本?我有最新版本 (3.4.2(
- 尝试更改:
Lint-Registry
在自定义 lint 模块中Lint-Registry-V2
- 还尝试将生成的jar添加到模块的build.gradle中:
lintChecks fileTree(dir: 'libs', include: ['customlint.jar'] )
更新:
完整的代码可以在这里找到
有人请帮忙。
我遇到了同样的问题,但这是由于 lint 规则build.gradle
的build.gradle
中缺少apply plugin: 'kotlin'
引起的,这不是您的问题。
但是你可能想通过 ADS 的这个视频赶上最新版本的 API。谷歌真的应该更新他们的文档 😑😑😑
一些值得注意的差异:
- 在资源文件中声明注册表
- AGP 3.5.1
尝试使用lintPublish project(':customlint')
而不是lintChecks project(':customlint')
。在撰写本文时,谷歌的样本已经过时。
我认为您可以删除任何jar/Lint-Registry的东西
看看这里: https://github.com/tikurahul/lint-experiments
复制噪音检测器以帮助检查您的设置是否正确。