android - 使用 android.tools.lint 执行 JetifyTransform 失败
问题描述
项目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"
}
...
}
毕业包装:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip
库模块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"
}
如果我运行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”的字符串文字,无法安全地重写。
如果我取消注释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 并手动导入,但它也不起作用。
我被困在这里,我错过了什么?
解决方案
我发现了问题,我的 build.gradle 使用的是 applyplugin: 'com.android.library'
而不是java-library
'^^
推荐阅读
- ruby-on-rails - Rails 5 + ActiveAdmin - safari 发出 mime 类型的意外附加请求 */*
- flutter - 如何将购物车中的商品设置为0
- css - 在产品上构建时如何撤消选择器的分组?
- python - 尝试在 Pandas Dataframe 上创建 % 列,但仅获取 NaN 值
- ubuntu - 运行 sudo apt-get update 时解决“us.archive.ubuntu.com”的临时故障
- python - 有人可以帮我制作重叠直方图吗?
- python - 如何构造索引集的并集
- delphi - 带 LiveBinding 的 Delphi 10.4 VCL TControlList
- python - Python 3.9.x - 使用 discord.py 库的属性错误
- javascript - 使用 javascript 使用选择(组合框)输入更改段落文本