无法使用转换 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 个模块的项目:一个构建类型为 debugreleaseenterprise 的应用程序 (Java) 和一个 Kotlin 库 (releasedebug) 由应用程序使用。

我正在使用 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'
    }

解决此问题的选项(优先级明智):

(注意:仅当上一个选项不起作用时才执行下一步)

  1. 将库声明更新为以下内容:implementation project(path: ':yourLibraryname', configuration: 'default')
  2. Android 工作室 > 文件 > Invalidate Caches/Restart.
  3. 转到用户 >(当前用户)> .gradle > 删除缓存文件夹并再次打开 Android Studio。
  4. "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 用户主页:

的路径解决了同样的问题
  1. 在终端中:export GRADLE_USER_HOME=/home/.gradle

  2. 在android工作室:文件|设置 |构建、执行、部署 |构建工具 | Gradle | Gradle 用户主页: /home/.gradle

  3. 构建项目。

有效的方法 正在将我的 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.)