Android自定义棉绒规则未检测到任何问题(对于导入)

时间:2019-08-09 13:14:00

标签: android android-lint

我将如下所述的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)
  • 尝试将customlint模块中的Lint-Registry更改为Lint-Registry-V2
  • 还尝试将生成的jar添加到模块的build.gradle中:lintChecks fileTree(dir: 'libs', include: ['customlint.jar'] )

更新

可以找到完整的代码here

请有人帮忙。

3 个答案:

答案 0 :(得分:0)

尝试使用lintPublish project(':customlint')代替lintChecks project(':customlint')。在撰写本文时,Google的示例已过时。

答案 1 :(得分:0)

我遇到了同样的问题,但这是由于apply plugin: 'kotlin'中的棉绒规则build.gradle中缺少build.gradle而引起的,这不是问题。

但是您可能想使用this video from ADS来赶上API的最新版本。 Google确实应该更新其文档???

一些明显的区别:

  • 在资源文件中声明注册表
  • AGP 3.5.1

答案 2 :(得分:0)

我认为您可以删除任何jar / Lint-Registry 内容

看看这里: https://github.com/tikurahul/lint-experiments

复制 NoisyDetector 以帮助检查您的设置是否正确。