Gradle: More than one variant of project :myLib matches the consumer attributes

  • A+
Category:Languages

A library that I wrote myLib uses RemoteMessage from Firebase, the app itself also uses Firebase.

Using gradle 4.7. Also facing this in 4.4.1.

How to fix it?

project.gradle

buildscript {      repositories {         google()         jcenter()         mavenCentral()     }     dependencies {         classpath 'com.android.tools.build:gradle:3.1.2'         classpath 'com.google.gms:google-services:3.3.0'     } }  allprojects {     repositories {         google()         jcenter()         mavenCentral()         mavenLocal()     } }  task clean(type: Delete) {     delete rootProject.buildDir } 

app.gradle

apply plugin: 'com.android.application'  android {     compileSdkVersion 27     defaultConfig {         applicationId "com.test.app"         minSdkVersion 19         targetSdkVersion 27         versionCode 1         versionName "1.0"         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"         multiDexEnabled true     }      dexOptions {         preDexLibraries = false         jumboMode = false         javaMaxHeapSize "2048M"     }      buildTypes {         release {             minifyEnabled false             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'         }     }     compileOptions {         sourceCompatibility JavaVersion.VERSION_1_8         targetCompatibility JavaVersion.VERSION_1_8     }     productFlavors {     } }  dependencies {     implementation fileTree(dir: 'libs', include: ['*.jar'])      implementation 'com.android.support:appcompat-v7:27.1.1'      implementation 'com.google.android.gms:play-services-gcm:12.0.1'     implementation 'com.google.android.gms:play-services:12.0.1'     implementation 'com.google.firebase:firebase-core:12.0.1'     implementation 'com.google.firebase:firebase-messaging:12.0.1'     implementation 'com.google.firebase:firebase-crash:12.0.1'      implementation project(":myLib") }  apply plugin: 'com.google.gms.google-services' 

myLib.gradle

apply plugin: 'com.android.library'  android {     compileSdkVersion 27        defaultConfig {         minSdkVersion 19         targetSdkVersion 27         versionCode 1         versionName "1.0"          testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"      }      buildTypes {         release {             minifyEnabled false             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'         }     }  }  dependencies {     implementation fileTree(dir: 'libs', include: ['*.jar'])      implementation 'com.android.support:appcompat-v7:27.1.1'      implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.2'     implementation 'com.j256.ormlite:ormlite-core:5.0'     implementation 'com.j256.ormlite:ormlite-android:5.0'      implementation 'com.google.firebase:firebase-messaging:12.0.1' } 

Error output from testApp/myLib> gradle clean assembleDebug and testApp/app> gradle clean assembleDebug

More than one variant of project :myLib matches the consumer attributes:

  • Configuration ':myLib:debugApiElements' variant android-aidl:
    • Found artifactType 'android-aidl' but wasn't required.
    • Required com.android.build.api.attributes.BuildTypeAttr 'debug' and found compatible value 'debug'.
    • Found com.android.build.api.attributes.VariantAttr 'debug' but wasn't required.
    • Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
    • Required org.gradle.usage 'java-api' and found compatible value 'java-api'.
  • Configuration ':myLib:debugApiElements' variant android-classes:
    • Found artifactType 'android-classes' but wasn't required.
    • Required com.android.build.api.attributes.BuildTypeAttr 'debug' and found compatible value 'debug'.
    • Found com.android.build.api.attributes.VariantAttr 'debug' but wasn't required.
    • Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
    • Required org.gradle.usage 'java-api' and found compatible value 'java-api'.
  • Configuration ':myLib:debugApiElements' variant android-manifest:
    • Found artifactType 'android-manifest' but wasn't required.
    • Required com.android.build.api.attributes.BuildTypeAttr 'debug' and found compatible value 'debug'.
    • Found com.android.build.api.attributes.VariantAttr 'debug' but wasn't required.
    • Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
    • Required org.gradle.usage 'java-api' and found compatible value 'java-api'.
  • Configuration ':myLib:debugApiElements' variant android-renderscript:
    • Found artifactType 'android-renderscript' but wasn't required.
    • Required com.android.build.api.attributes.BuildTypeAttr 'debug' and found compatible value 'debug'.
    • Found com.android.build.api.attributes.VariantAttr 'debug' but wasn't required.
    • Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
    • Required org.gradle.usage 'java-api' and found compatible value 'java-api'.
  • Configuration ':myLib:debugApiElements' variant jar:
    • Found artifactType 'jar' but wasn't required.
    • Required com.android.build.api.attributes.BuildTypeAttr 'debug' and found compatible value 'debug'.
    • Found com.android.build.api.attributes.VariantAttr 'debug' but wasn't required.
    • Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
    • Required org.gradle.usage 'java-api' and found compatible value 'java-api'.

 


The google-services gradle plugin is made to work with Google Play Services and Firebase 15+, but you're using it with version 12.0.1.

The solution is to either:

  • Upgrade your Play Services and Firebase dependencies to version 15+ (note that they have different versions now)
  • Cancel your google-services upgrade to 3.3.0 until you upgrade to 15+, that is, downgrading the gradle plugin to version 3.2.1.

Comment

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: