it-swarm.com.de

Gradle: Mehr als eine Projektvariante: myLib entspricht den Consumer-Attributen

Eine Bibliothek, die ich myLib geschrieben habe, verwendet RemoteMessage von Firebase, die App selbst verwendet ebenfalls Firebase.

Verwenden von Gradle 4.7. Auch in 4.4.1.

Wie man es repariert?

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'
}

Fehlerausgabe von testApp\myLib> gradle clean assembleDebug und testApp\app> gradle clean assembleDebug

Mehr als eine Projektvariante: myLib entspricht der Verbraucherattribute:

  • Konfiguration ': myLib: debugApiElements-Variante Android-aidl:
    • ArtefaktTyp 'Android-Hilfsmittel' gefunden, wurde aber nicht benötigt.
    • Erforderlich com.Android.build.api.attributes.BuildTypeAttr 'debug' und der kompatible Wert 'debug'.
    • Gefunden com.Android.build.api.attributes.VariantAttr 'debug', wurde aber nicht benötigt.
    • Erforderlich com.Android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' und kompatibler Wert 'Aar' gefunden.
    • Erforderliche org.gradle.usage 'Java-api' und kompatibler Wert 'Java-api' gefunden.
  • Konfiguration ': myLib: debugApiElements Variante Android-Klassen:
    • ArtefaktTyp 'Android-Klassen' gefunden, wurde aber nicht benötigt.
    • Erforderlich com.Android.build.api.attributes.BuildTypeAttr 'debug' und der kompatible Wert 'debug'.
    • Gefunden com.Android.build.api.attributes.VariantAttr 'debug', wurde aber nicht benötigt.
    • Erforderlich com.Android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' und kompatibler Wert 'Aar' gefunden.
    • Erforderliche org.gradle.usage 'Java-api' und kompatibler Wert 'Java-api' gefunden.
  • Konfiguration ': myLib: debugApiElements Variante Android-Manifest:
    • ArtefaktTyp 'Android-Manifest' gefunden, wurde aber nicht benötigt.
    • Erforderlich com.Android.build.api.attributes.BuildTypeAttr 'debug' und der kompatible Wert 'debug'.
    • Gefunden com.Android.build.api.attributes.VariantAttr 'debug', wurde aber nicht benötigt.
    • Erforderlich com.Android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' und kompatibler Wert 'Aar' gefunden.
    • Erforderliche org.gradle.usage 'Java-api' und kompatibler Wert 'Java-api' gefunden.
  • Konfiguration ': myLib: debugApiElements-Variante Android-Renderer:
    • ArtefaktTyp 'Android-Rendering-Skript' gefunden, wurde aber nicht benötigt.
    • Erforderlich com.Android.build.api.attributes.BuildTypeAttr 'debug' und der kompatible Wert 'debug'.
    • Gefunden com.Android.build.api.attributes.VariantAttr 'debug', wurde aber nicht benötigt.
    • Erforderlich com.Android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' und kompatibler Wert 'Aar' gefunden.
    • Erforderliche org.gradle.usage 'Java-api' und kompatibler Wert 'Java-api' gefunden.
  • Konfiguration ': myLib: debugApiElements-Variante jar:
    • ArtifactType 'jar' wurde gefunden, wurde aber nicht benötigt.
    • Erforderlich com.Android.build.api.attributes.BuildTypeAttr 'debug' und der kompatible Wert 'debug'.
    • Gefunden com.Android.build.api.attributes.VariantAttr 'debug', wurde aber nicht benötigt.
    • Erforderlich com.Android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' und kompatibler Wert 'Aar' gefunden.
    • Erforderliche org.gradle.usage 'Java-api' und kompatibler Wert 'Java-api' gefunden.
81
theAnonymous

Das google-services-Gradle-Plugin kann mit Google Play Services und Firebase 15+ zusammenarbeiten, aber Sie verwenden es mit der Version 12.0.1.

Die Lösung ist entweder

EDIT 1: Es gibt ein bekanntes Problem bei der Verwendung von google-services3.3 in Multimodul-Apps . Das bedeutet, dass ein Downgrade auf google-services auf 3.2.1 Ihre einzige Option sein kann, bis eine neue Version veröffentlicht wird, die den Fehler behebt.

EDIT 2: Der oben genannte Fehler wurde in der Version 4.0.1 des google-services Gradle Plugins behoben! (und die Version 4.0.2 behebt auch eine in einigen Fällen aufgetretene NPE)

BTW, Sie sollten zu FCM wechseln.GCM funktioniert in nicht allzu ferner Zukunft nicht mehr.

86
Louis CAD

Ich habe diese Fehlermeldung erhalten, wenn ich Google-Services verwende: 3.3.0. 

Downgrade auf classpath 'com.google.gms:google-services:3.2.1' in Ihrem Projektgrad.

Es sollte das Problem lösen.

28
Henrique Monte

Konfrontiert mit einem ähnlichen Problem beim Upgrade auf 3.3.1 

Behebung des Problems durch Herabstufung auf 3.2.1

Wir können die Firebase-Version> = 15 mit 3.2.1 verwenden

7
dddd2011

Folgende Schritte haben für mich gearbeitet --- 

  1. Wechseln Sie zur Datei Android/build.gradle. 
  2. Suchen Sie nach der jcentre()-Methode. 
  3. Verschieben Sie alle jcenter()-Methoden innerhalb ihres Blocks nach unten. 
1
Akhilesh Sinha

Ich hatte in den letzten Tagen ein ähnliches Problem mit. 

implementation 'com.google.Android.gms:play-services-auth:15.0.0'
implementation 'com.google.firebase:firebase-messaging:15.0.0'

lösung war, entweder zu downgraden 

implementation 'com.google.Android.gms:play-services-auth:12.0.1'
implementation 'com.google.firebase:firebase-messaging:12.0.1'

oder ziehen Sie in Betracht, Google Cloud Services zu verlassen und vollständig auf FCM zu aktualisieren 

Beachten Sie, dass sie unterschiedliche Versionsnummern haben, die Sie nachschlagen können hier

0
Poorya