Многоцветная библиотека: "Обязательный org.gradle.usage 'java-api' и найдено несовместимое значение 'java-runtime'" - PullRequest
0 голосов
/ 03 октября 2018

Версия плагина 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...