Не удалось преобразовать файл 'some-lib-release.aar' для соответствия атрибутам {artifactType=processing-aar}, используя преобразование JetifyTransform

У меня есть проект с 2 модулями: приложение (Java) с типами сборки debug, release, а также enterprise и библиотека Котлина (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.

Любые идеи о том, что я делаю здесь не так?

10 ответов

Решение

Я могу поклясться, что уже пробовал это, но указав набор matchingFallbacks для типов сборки сделали свое дело:

buildTypes {
    release {
        // blah blah
        matchingFallbacks = ['release']
    }
    enterprise {
        // blah blah
        matchingFallbacks = ['release']
    }
    debug {
        // blah blah
        matchingFallbacks = ['debug']
    }
}

Больше здесь

Кажется, ошибка вызвана поврежденными файлами Jetific.

Удалите ТОЛЬКО поврежденный файл.jar из папки кэшей Gradle:

rm ~/.gradle/caches/modules-2/files-2.1/path-to/some-release.aar

"Path-to", вероятно, будет именем пакета, например, com.example.somerelease

Удаление всей папки не является оптимальным решением, так как все зависимости нужно будет снова исправить. Если у вас уже есть проблемы с коррупцией, вы, вероятно, столкнетесь с этой проблемой снова.

Я получил решение.. Просто введите следующие строки в build.gradle(приложение)

compileOptions {
        sourceCompatibility '1.8'
        targetCompatibility '1.8'
    }

Попробуй это:

implementation fileTree(include:[':some-lib'], dir: "../lib/path")

Это происходит со мной, когда я использую 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.)

Варианты решения этой проблемы (Priority Wise):

(Примечание: следуйте следующему, только если предыдущий вариант не работает)

  1. обновить объявление библиотеки до следующего: implementation project(path: ':yourLibraryname', configuration: 'default')
  2. Android Studio> Файл> Invalidate Caches/Restart.
  3. Перейдите в раздел Пользователи> (Текущий пользователь)> .gradle > удалить папку кешей и снова откройте Android Studio.
  4. " собрать " эту конкретную библиотеку отдельно. (Используйте опцию Gradle, доступную в правой части Android Studio.

К сожалению, ни один из ответов не помог мне. Что сработало, так это обновление моей сборки gradle до последней версии.

Я тоже столкнулся с такой проблемой сегодня и, надеюсь, решил ее. Имя файла.aar в моем случае - "open-web-sdk-release.aar".

Ошибка была здесь, implementation files("libs/open-web-sdk-release").

Я заменил это на, implementation project(":open-web-sdk-release").

Использовал эту ссылку... https://developer.android.com/studio/build.

Я решил ту же проблему, сократив путь к главной странице пользователя Gradle :

  1. В терминале: export GRADLE_USER_HOME=/home/.gradle

  2. В студии Android: Файл | Настройки | Сборка, выполнение, развертывание | Инструменты сборки | Gradle | Главная страница пользователя Gradle : /home/.gradle

  3. Постройте проект.

Это решило это для меня

File -> Invalidate Caches / Restart

Надеюсь, это поможет кому-то

Другие вопросы по тегам