Версия плагина Android: 3.2.0
Версия инструментов сборки: 28.0.3
Версия Gradle: 4.10.2
Варианты и варианты библиотек
apply plugin: 'com.android.library'
...
buildTypes {
release {
}
}
flavorDimensions 'default'
productFlavors {
exposed {
}
production {
}
}
Демонстрационное приложение имеет два типа сборки и без вариантов, а также зависимость
apply plugin: 'com.android.application'
...
buildTypes {
debug {
}
release {
}
}
dependencies {
implementation project(':library')
}
Вывод:
Caused by: org.gradle.internal.component.AmbiguousConfigurationSelectionException: Cannot choose between the following variants of project :library:
- exposedReleaseRuntimeElements
- kapt
- kaptAndroidTest
- kaptAndroidTestDebug
- kaptAndroidTestExposed
- kaptAndroidTestExposedDebug
- kaptAndroidTestProduction
- kaptAndroidTestProductionDebug
- kaptDebug
- kaptExposed
- kaptExposedDebug
- kaptExposedRelease
- kaptProduction
- kaptProductionDebug
- kaptProductionRelease
- kaptRelease
- kaptTest
- kaptTestDebug
- kaptTestExposed
- kaptTestExposedDebug
- kaptTestExposedRelease
- kaptTestProduction
- kaptTestProductionDebug
- kaptTestProductionRelease
- kaptTestRelease
- productionReleaseRuntimeElements
All of them match the consumer attributes:
- Variant 'exposedReleaseRuntimeElements':
- Required com.android.build.api.attributes.BuildTypeAttr 'release' and found compatible value 'release'.
- Found com.android.build.api.attributes.VariantAttr 'exposedRelease' but wasn't required.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
- Found default 'exposed' but wasn't required.
- Required org.gradle.usage 'java-runtime' and found compatible value 'java-runtime'.
- Found org.jetbrains.kotlin.platform.type 'androidJvm' but wasn't required.
- Variant 'kapt':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptAndroidTest':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptAndroidTestDebug':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptAndroidTestExposed':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptAndroidTestExposedDebug':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptAndroidTestProduction':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptAndroidTestProductionDebug':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptDebug':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptExposed':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptExposedDebug':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptExposedRelease':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptProduction':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptProductionDebug':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptProductionRelease':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptRelease':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptTest':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptTestDebug':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptTestExposed':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptTestExposedDebug':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptTestExposedRelease':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptTestProduction':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptTestProductionDebug':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptTestProductionRelease':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'kaptTestRelease':
- Found artifactType 'processed-jar' but wasn't required.
- Required com.android.build.api.attributes.BuildTypeAttr 'release' but no value provided.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but no value provided.
- Required org.gradle.usage 'java-runtime' but no value provided.
- Variant 'productionReleaseRuntimeElements':
- Required com.android.build.api.attributes.BuildTypeAttr 'release' and found compatible value 'release'.
- Found com.android.build.api.attributes.VariantAttr 'productionRelease' but wasn't required.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
- Found default 'production' but wasn't required.
- Required org.gradle.usage 'java-runtime' and found compatible value 'java-runtime'.
- Found org.jetbrains.kotlin.platform.type 'androidJvm' but wasn't required.
at org.gradle.internal.component.model.AttributeConfigurationSelector.selectConfigurationUsingAttributeMatching(AttributeConfigurationSelector.java:44)
Поэтому я выбираю
implementation project(path: ':library', configuration: 'productionReleaseRuntimeElements')
и обратите внимание, что в приведенном выше списке он имеет Required org.gradle.usage 'java-runtime' and found compatible value 'java-runtime'
.
И я получаю
Caused by: org.gradle.internal.component.IncompatibleConfigurationSelectionException: Variant 'productionReleaseRuntimeElements' in project :library does not match the consumer attributes
Variant 'productionReleaseRuntimeElements':
- Required com.android.build.api.attributes.BuildTypeAttr 'release' and found compatible value 'release'.
- Found com.android.build.api.attributes.VariantAttr 'productionRelease' but wasn't required.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
- Found default 'production' but wasn't required.
- Required org.gradle.usage 'java-api' and found incompatible value 'java-runtime'.
- Found org.jetbrains.kotlin.platform.type 'androidJvm' but wasn't required.
at org.gradle.internal.component.model.LocalComponentDependencyMetadata.selectConfigurations(LocalComponentDependencyMetadata.java:133)