使用 android.tools.lint 执行 JetifyTransform 失败

Gui*_*lhE 5 android gradle android-lint android-gradle-plugin gradle-dependencies

项目build.gradle

buildscript {
    ext.kotlin_version = '1.3.72'
    repositories {
        google()
        jcenter()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.3'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

gradle 包装器:

distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip
Run Code Online (Sandbox Code Playgroud)

库模块build.gradle依赖关系:

dependencies {
    compileOnly "com.android.tools.lint:lint-api:26.6.3"
//    compileOnly "com.android.tools.lint:lint-checks:26.6.3"
    testImplementation "com.android.tools.lint:lint-tests:26.6.3"
}
Run Code Online (Sandbox Code Playgroud)

如果我跑gradle assemble

任务“:lint-rules:compileDebugKotlin”执行失败。

无法解析配置“:lint-rules:debugCompileClasspath”的所有工件。无法转换工件“common.jar (com.android.tools:common:26.6.3)”以匹配属性 {artifactType=android-classes, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime} 。JetifyTransform 执行失败:/Users/.../.gradle/caches/modules-2/files-2.1/com.android.tools/common/26.6.3/660d537bd70cc816f63b4b038a529177f402448a/common-26.6.3.jar。无法使用 Jetifier 转换“/Users/.../.gradle/caches/modules-2/files-2.1/com.android.tools/common/26.6.3/660d537bd70cc816f63b4b038a529177f402448a/common-26.6.3.jar”。原因:给定的工件包含一个带有包引用“android.support.design.widget”的字符串文字,无法安全地重写。使用反射的库(例如注释处理器)需要手动更新以添加对 androidx 的支持。(使用 --stacktrace 运行以获取更多详细信息。)

如果我取消注释lint-checks导入,它会添加:

无法转换'/Users/.../.gradle/caches/modules-2/files-2.1/com.android.tools.lint/lint-checks/26.6.3/aa1f7a4caa8cbc70f85e4c97409270ce7d7a7eab/lint-checks-26.6.3。 jar' 使用 Jetifier。原因:重复条目:注意。(使用 --stacktrace 运行以获取更多详细信息。)

我尝试过禁用 Jetifier,但这是最糟糕的。我尝试从 lint 中排除 tools:common 并手动导入,但它也不起作用。

我被困在这里,我错过了什么?

Gui*_*lhE 3

我发现了这个问题,我的 build.gradle 使用 applyplugin: 'com.android.library'而不是java-library'^^