无法使用转换 JetifyTransform 转换文件 'some-lib-release.aar' 以匹配属性 {artifactType=processed-aar}
Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
我有一个包含 2 个模块的项目:一个构建类型为 debug
、release
和 enterprise
的应用程序 (Java) 和一个 Kotlin 库 (release
和 debug
) 由应用程序使用。
我正在使用 AndroidX 并在我的 gradle.properties
中包含以下内容:
android.useAndroidX=true
android.enableJetifier=true
如果我通过 Gradle 运行 项目,我会得到一堆编译错误(预期)。但是,如果我尝试在 Android Studio (3.2 Beta 5) 中使用它,特别是在尝试与 Gradle 模型同步时,我会得到:
Unable to resolve dependency for ':app@debug/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@release/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@enterprise/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@enterpriseUnitTest/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
我的settings.gradle
:
include ':app',':some-lib'
project(':some-lib').projectDir = file ('../some-lib/lib')
库模块最终将成为此应用程序和其他应用程序使用的自己的库,但在我处理它时,我将其构建为应用程序的一部分。在我切换到 AndroidX.
之前一切正常
app
模块将依赖声明为:
implementation project(path: ':some-lib', configuration: 'default')
如果我在声明依赖关系时省略 configuration: 'default'
位,我会得到:
Unable to resolve dependency for ':app@enterprise/compileClasspath': Could not resolve project :some-lib.
Unable to resolve dependency for ':app@enterpriseUnitTest/compileClasspath': Could not resolve project :some-lib.
关于我在这里做错了什么有什么想法吗?
我可以发誓我已经尝试过了,但是为构建类型指定一组 matchingFallbacks
就成功了:
buildTypes {
release {
// blah blah
matchingFallbacks = ['release']
}
enterprise {
// blah blah
matchingFallbacks = ['release']
}
debug {
// blah blah
matchingFallbacks = ['debug']
}
}
更多here
试试这个:
implementation fileTree(include:[':some-lib'], dir: "../lib/path")
错误似乎是由损坏的 Jetified 文件引起的。
仅从 Gradle 缓存文件夹中删除损坏的 .aar:
rm ~/.gradle/caches/modules-2/files-2.1/path-to/some-release.aar
"path-to" 可能是包名称,例如 com.example.somerelease
有时可以从错误消息本身获取要删除的文件的路径,并将其剪切并粘贴到终端中,以便执行 rm
命令。
删除整个文件夹不是最佳解决方案,因为所有依赖项都需要再次 Jetified。如果你已经有了
腐败问题,你可能会再次遇到这个问题。
我得到了解决方案。只需将以下行输入 build.gradle(app)
compileOptions {
sourceCompatibility '1.8'
targetCompatibility '1.8'
}
解决此问题的选项(优先级明智):
(注意:仅当上一个选项不起作用时才执行下一步)
- 将库声明更新为以下内容:
implementation project(path: ':yourLibraryname', configuration: 'default')
- Android 工作室 > 文件 >
Invalidate Caches/Restart
.
- 转到用户 >(当前用户)> .gradle > 删除缓存文件夹并再次打开 Android Studio。
- "assemble" 那个特定的库分开。 (使用 Android Studio 的 RHS 上可用的 Gradle 选项。
我今天也遇到了这样的问题,希望我解决了。
在我的例子中,.aar 文件的名称是“open-web-sdk-release.aar”。
这里有错误,implementation files("libs/open-web-sdk-release")
。
我将其替换为 implementation project(":open-web-sdk-release")
.
使用了这个 link ... https://developer.android.com/studio/build#module-level .
我通过缩短 Gradle 用户主页:
的路径解决了同样的问题
在终端中:export GRADLE_USER_HOME=/home/.gradle
在android工作室:文件|设置 |构建、执行、部署 |构建工具 | Gradle | Gradle 用户主页: /home/.gradle
构建项目。
有效的方法 正在将我的 gradle 构建更新到最新版本
当我使用 jdk11 构建应用程序时,我遇到了这种情况。
切换到 jdk8 适合我。
* What went wrong:
Execution failed for task ':****:kaptGenerateStubsDebugKotlin'.
> Could not resolve all files for configuration ':****'.
> Failed to transform coreService.jar (project :coreService) to match attributes {artifactType=android-classes, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.jvm.version=11, org.gradle.libraryelements=jar, org.gradle.usage=java-api, org.jetbrains.kotlin.localToProject=public, org.jetbrains.kotlin.platform.type=jvm}.
> Execution failed for JetifyTransform: ****/build/libs/coreService.jar.
> Failed to transform '****/build/libs/coreService.jar' using Jetifier. Reason: null. (Run with --stacktrace for more details.)
我有一个包含 2 个模块的项目:一个构建类型为 debug
、release
和 enterprise
的应用程序 (Java) 和一个 Kotlin 库 (release
和 debug
) 由应用程序使用。
我正在使用 AndroidX 并在我的 gradle.properties
中包含以下内容:
android.useAndroidX=true
android.enableJetifier=true
如果我通过 Gradle 运行 项目,我会得到一堆编译错误(预期)。但是,如果我尝试在 Android Studio (3.2 Beta 5) 中使用它,特别是在尝试与 Gradle 模型同步时,我会得到:
Unable to resolve dependency for ':app@debug/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@release/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@enterprise/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@enterpriseUnitTest/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
我的settings.gradle
:
include ':app',':some-lib'
project(':some-lib').projectDir = file ('../some-lib/lib')
库模块最终将成为此应用程序和其他应用程序使用的自己的库,但在我处理它时,我将其构建为应用程序的一部分。在我切换到 AndroidX.
之前一切正常app
模块将依赖声明为:
implementation project(path: ':some-lib', configuration: 'default')
如果我在声明依赖关系时省略 configuration: 'default'
位,我会得到:
Unable to resolve dependency for ':app@enterprise/compileClasspath': Could not resolve project :some-lib.
Unable to resolve dependency for ':app@enterpriseUnitTest/compileClasspath': Could not resolve project :some-lib.
关于我在这里做错了什么有什么想法吗?
我可以发誓我已经尝试过了,但是为构建类型指定一组 matchingFallbacks
就成功了:
buildTypes {
release {
// blah blah
matchingFallbacks = ['release']
}
enterprise {
// blah blah
matchingFallbacks = ['release']
}
debug {
// blah blah
matchingFallbacks = ['debug']
}
}
更多here
试试这个:
implementation fileTree(include:[':some-lib'], dir: "../lib/path")
错误似乎是由损坏的 Jetified 文件引起的。
仅从 Gradle 缓存文件夹中删除损坏的 .aar:
rm ~/.gradle/caches/modules-2/files-2.1/path-to/some-release.aar
"path-to" 可能是包名称,例如 com.example.somerelease
有时可以从错误消息本身获取要删除的文件的路径,并将其剪切并粘贴到终端中,以便执行 rm
命令。
删除整个文件夹不是最佳解决方案,因为所有依赖项都需要再次 Jetified。如果你已经有了 腐败问题,你可能会再次遇到这个问题。
我得到了解决方案。只需将以下行输入 build.gradle(app)
compileOptions {
sourceCompatibility '1.8'
targetCompatibility '1.8'
}
解决此问题的选项(优先级明智):
(注意:仅当上一个选项不起作用时才执行下一步)
- 将库声明更新为以下内容:
implementation project(path: ':yourLibraryname', configuration: 'default')
- Android 工作室 > 文件 >
Invalidate Caches/Restart
. - 转到用户 >(当前用户)> .gradle > 删除缓存文件夹并再次打开 Android Studio。
- "assemble" 那个特定的库分开。 (使用 Android Studio 的 RHS 上可用的 Gradle 选项。
我今天也遇到了这样的问题,希望我解决了。 在我的例子中,.aar 文件的名称是“open-web-sdk-release.aar”。
这里有错误,implementation files("libs/open-web-sdk-release")
。
我将其替换为 implementation project(":open-web-sdk-release")
.
使用了这个 link ... https://developer.android.com/studio/build#module-level .
我通过缩短 Gradle 用户主页:
的路径解决了同样的问题在终端中:
export GRADLE_USER_HOME=/home/.gradle
在android工作室:文件|设置 |构建、执行、部署 |构建工具 | Gradle | Gradle 用户主页:
/home/.gradle
构建项目。
有效的方法 正在将我的 gradle 构建更新到最新版本
当我使用 jdk11 构建应用程序时,我遇到了这种情况。
切换到 jdk8 适合我。
* What went wrong:
Execution failed for task ':****:kaptGenerateStubsDebugKotlin'.
> Could not resolve all files for configuration ':****'.
> Failed to transform coreService.jar (project :coreService) to match attributes {artifactType=android-classes, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.jvm.version=11, org.gradle.libraryelements=jar, org.gradle.usage=java-api, org.jetbrains.kotlin.localToProject=public, org.jetbrains.kotlin.platform.type=jvm}.
> Execution failed for JetifyTransform: ****/build/libs/coreService.jar.
> Failed to transform '****/build/libs/coreService.jar' using Jetifier. Reason: null. (Run with --stacktrace for more details.)