Не удалось преобразовать файл '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):
(Примечание: следуйте следующему, только если предыдущий вариант не работает)
- обновить объявление библиотеки до следующего:
implementation project(path: ':yourLibraryname', configuration: 'default')
- Android Studio> Файл>
Invalidate Caches/Restart
. - Перейдите в раздел Пользователи> (Текущий пользователь)> .gradle > удалить папку кешей и снова откройте Android Studio.
- " собрать " эту конкретную библиотеку отдельно. (Используйте опцию 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 :
В терминале:
export GRADLE_USER_HOME=/home/.gradle
В студии Android: Файл | Настройки | Сборка, выполнение, развертывание | Инструменты сборки | Gradle | Главная страница пользователя Gradle :
/home/.gradle
Постройте проект.
Это решило это для меня
File -> Invalidate Caches / Restart
Надеюсь, это поможет кому-то