首页 > 解决方案 > Detekt 版本 1.18.0 与 Gradle 7.1.1、AGP 版本 7.0.0 和 jdk 11 及更高版本不兼容

问题描述

预期行为

./gradlew build 应该是成功的,但它会抛出错误。

观察到的行为

1. 我在我的 Kotlin 文件中设置如下过滤器。</p>

 filters.set(extension.detektFilters) 

错误:未解决的参考:过滤器

2.

internal fun Project.setupAndroidTasks(extension: CodeCoverageExtension) {
    android {
        testOptions {
            unitTests.all {
                jacoco {
                    isIncludeNoLocationClasses = true
                }
            }
        }

        createTasks(extension, variants)
    }
}

错误:未解决的参考:isIncludeNoLocationClasses

重现步骤

step1:设置配置

步骤2:./gradlew clean

step3 ./gradlew 构建

它只在这里抛出错误

在第 4 步中,我想发布到本地 maven,这样我就可以在我的项目中使用这个质量工具 sdk。

step4: ./gradlew publishToMavenLocal

语境

我在我的质量工具 sdk 中使用 Detekt。我在我的 android 项目中使用这个质量工具 sdk。使用此配置 Gradle 可以正常工作:6.9 AGP(Android Gradle 插件):4.0.1 detekt:1.1.1 但是当我升级到 Gradle 7.+ 时,由于某些功能的贬值,它出现了 Detekt 错误。

我的环境

有关 Dependencies.kt 中其他依赖项版本的更多信息:

object Versions {
    const val agpVersion = "7.0.0"
    const val violationsVersion = "1.18"
    const val spotbugsToolVersion = "4.4.0"
    const val findSecBugsVersion = "1.11.0"
    const val checkstyleToolVersion = "9.0"
    const val detektVersion = "1.18.0"
    const val spotbugsGradlePluginVersion = "4.7.3"
    const val jUnitVersion = "4.12"
    const val jacoco = "0.8.7"
}

我在 github 的官方页面上提出了错误:https://github.com/detekt/detekt/issues/4088

标签: androidkotlingradlespotbugsdetekt

解决方案


推荐阅读