Google Play Services GCM 9.2.0 fordert Sie auf, ein Update auf 9.0.0 durchzuführen

178

Also habe ich heute Morgen angefangen, auf die neueste Version meiner Projektbibliotheken zu aktualisieren.

Ich versuche, GCM auf die neueste Version 9.2.0 zu aktualisieren, erhalte jedoch folgende Fehlermeldung:

Fehler: Ausführung für Aufgabe ': app: processDebugGoogleServices' fehlgeschlagen. Beheben Sie den Versionskonflikt entweder durch Aktualisieren der Version des Google Services-Plugins (Informationen zur neuesten Version finden Sie unter https://bintray.com/android/android-tools/com.google.gms.google-services/ ). oder aktualisieren Sie die Version von com.google.android.gms auf 9.0.0.

So habe ich meinen Code:

dependencies {
    classpath 'com.android.tools.build:gradle:2.1.2'
    classpath 'com.google.gms:google-services:3.0.0'
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}

Und dann:

dependencies {
    ...

    compile "com.google.android.gms:play-services-gcm:9.2.0"

    ...
}

Hat jemand das gleiche Problem / hat das gleiche Problem behoben?

Vielen Dank.

BEARBEITEN

Anscheinend müssen Sie Ihr GSM-Plugin am Ende Ihrer app / build.gradle-Datei anwenden. Andernfalls führt Version 9.2.0 zu Konflikten in Ihrem Projekt.

Als Referenz sieht meine app / build.gradle-Datei jetzt so aus:

apply plugin: "com.android.application"
apply plugin: "com.neenbedankt.android-apt"

android {
    ...
}

dependencies {
    ...

    // Google Cloud Messaging
    compile "com.google.android.gms:play-services-gcm:9.2.0"

    ...
}

apply plugin: "com.google.gms.google-services"
herrmartell
quelle
Das gleiche Problem hier, ich rollte zurück zu 9.0.0
mbonnin
@mbonnin Am Ende habe ich das Gleiche getan. Würde aber sicher gerne wissen, was hier los ist. Ich hatte noch kein Glück, eine Antwort zu finden.
Herrmartell
2
Und dann hat 9.0.0 diesen Fehler stackoverflow.com/questions/37361651/… und die Lösung scheint darin zu bestehen, auf 9.2.0 zu aktualisieren .... Was dank des Fehlers hier nicht möglich ist :-(
mbonnin
6
Es funktioniert, wenn ich das Plugin am Ende der build.gradle-Datei anwende, wie Gusthema unten sagt
mbonnin
Lesen Sie in meinem Beitrag hier, wie Sie dieses Problem richtig beheben können .
Pedro Varela

Antworten:

507

Hast du die Leitung?

apply plugin: 'com.google.gms.google-services' 

Zeile am Ende der build.gradle-Datei Ihrer App?

Ich habe einige Fehler gesehen, als es oben war und wie es hier geschrieben steht , sollte es unten sein.

Gusthema
quelle
11
Das stimmt nicht, das gms-Plugin sollte sich am Ende der Datei befinden, wie Sie hier in den Dokumenten für gms sehen können: developer.google.com/android/guides/google-services-plugin
Gusthema
1
Ich stehe korrigiert. Unabhängig davon wird das Problem dadurch nicht gelöst.
Herrmartell
1
Ich bin mir nicht sicher, warum es beim ersten Versuch nicht funktioniert hat. Ich habe es gerade wegen @mbonnins Kommentar noch einmal versucht und es funktioniert jetzt. Danke dir.
Herrmartell
9
Ich hatte diese Zeile am Anfang der Datei hinzugefügt, aber sie funktionierte, nachdem ich sie unten platziert hatte.
SHA2NK
2
Durch Hinzufügen des Plugins unten wurde der Versionskonflikt behoben.
Pratima
54

Fügen Sie diese Zeile einfach am Ende der gradleDatei Ihres App-Moduls (nicht der Datei des Projektstamms) ein .

apply plugin: 'com.google.gms.google-services'

Erstellen Sie dann Ihr Projekt neu.

Vikas
quelle
11

Ich hatte das gleiche Problem, heute 2016 - Oktober - 06 habe ich damit gelöst:

Ich habe alle Abhängigkeiten geändert, die mit 9 begonnen haben. bis 9.6.1 habe ich mit sdk version 24 und target version 17 kompiliert.

Meine Lösung enthält weitere Pakete, da ich mehr Dinge als nur die Authentifizierung verwendet habe.

Nachdem Sie Ihr build.gradle (Modul: App) mit dem folgenden Code geändert haben, tun Sie Folgendes:

  1. Setzen Sie Ihren Paketnamen in die Zeile mit den Worten applicationId "com.YOUR_PACKAGE_HERE".

  2. Synchronisieren Sie Ihr Projekt (Strg + Alt + V) und erstellen Sie es erneut.

Dies ist der Code der Datei buid.gradle (Modul: App), die für mich funktioniert hat:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.3"
    defaultConfig {
        applicationId "com.YOUR_PACKAGE_HERE"
        minSdkVersion 24
        targetSdkVersion 17
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })

    compile 'com.google.firebase:firebase-core:9.6.1'
    compile 'com.google.firebase:firebase-database:9.6.1'

    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:design:24.2.1'

    compile 'com.google.firebase:firebase-crash:9.6.1'
    testCompile 'junit:junit:4.12'

    compile 'com.google.firebase:firebase-messaging:9.6.1'

    compile 'com.google.firebase:firebase-ads:9.6.1'


    compile 'com.google.firebase:firebase-auth:9.6.1'


    compile 'com.google.android.gms:play-services:9.6.1'

}
apply plugin: 'com.google.gms.google-services'
Gustavomcls
quelle
6

Die gleiche Situation war mit den vorherigen Versionen. Es ist ärgerlich, dass neue Versionen von com.google.android.gms-Bibliotheken immer vor dem Plugin veröffentlicht werden und es unmöglich ist, eine neue Version zu verwenden, da diese nicht mit dem alten Plugin kompatibel ist. Ich weiß nicht, ob das Plugin jetzt erforderlich ist (Google Docs ist scheiße). Ich erinnere mich an Zeiten, als es nicht war. Der einzige Weg ist, auf eine neue Plugin-Version zu warten, oder Sie können versuchen, Plugin-Abhängigkeiten zu entfernen, aber wie gesagt, ich bin nicht sicher, ob gcm ohne diese Version funktioniert. Was ich weiß, ist die Hauptfunktion der Version 9.2.0 die neue Awareness-API https://inthecheesefactory.com/blog/google-awareness-api-in-action/en . Wenn Sie sie nicht benötigen, können Sie 9.0 verwenden. 0 Version ohne Probleme.

yaneq6
quelle
Ah, mach eine Figur. Da es keine Dokumentation gibt, die etwas anderes angibt, ging ich davon aus, dass die neuesten Versionen mit dem erforderlichen Plugin herauskommen würden. AFAIK, Sie benötigen das Plugin, damit GCM funktioniert. Ich vermute, dies ist eine manuelle Lösung für die Überprüfung auf Aktualisierung.
Herrmartell
1
Sicher, @yaneq Google Docs ist scheiße, habe jetzt das gleiche Problem
Lutaaya Huzaifah Idris
5

Die Lösung von Gustavomcls, die Version von com.google. * In dieselbe Version zu ändern, hat bei mir funktioniert.

Ich ändere beide Abhängigkeiten in buid.gradle (Modul: App) auf 9.2.1.

compile 'com.google.firebase:firebase-ads:9.2.1'
compile 'com.google.android.gms:play-services:9.2.1'
Rahul Bagal
quelle
Ich hatte dieses Problem auch wegen Firebase, aber ich mag diese Lösung nicht, um Firebase-Version auf 9.2.1
Sam Bellerose
2

Öffnen Sie app/build.gradlevon Ihrem App-Modul und schreiben Sie nach dem Blockieren der Abhängigkeiten die folgende Zeile neu. Auf diese Weise kann das Plugin bestimmen, welche Version der Play-Dienste Sie verwenden

apply plugin: 'com.google.gms.google-services'

Ich habe diese Idee von hier . In diesem Tutorial heißt es im zweiten Punkt, dass sich die obige Plugin-Zeile am Ende Ihrer app/build.gradleDatei befindet, damit keine Abhängigkeitskollisionen eingeführt werden. Hoffe es wird dir helfen.

Rahul Sharma
quelle
Warum wiederholen Sie Antworten, die vor einem halben Jahr gegeben wurden?
Bevor
2

Für Cordova OR Ionic Hybrid App

Ich habe das sehr ähnliche Problem mit meinem Ionic 1 Cordova Build nach der Integration des Firebase Cloud Messaging (FCM).

Ich habe dieses Problem durch die folgenden Schritte behoben

Ein Fix wird also sein: In Plattformen / Android öffnen Sie project.properties (es ist eine Datei), Sie werden so etwas haben

cordova.system.library.1=com.google.android.gms:play-services-ads:+
cordova.system.library.2=com.google.firebase:firebase-core:+
cordova.system.library.3=com.google.firebase:firebase-messaging:+

Ersetze das

+

Unterschreiben Sie mit Ihrer Zielversionsnummer - wie folgt

cordova.system.library.1=com.google.android.gms:play-services-ads:9.0.0
cordova.system.library.2=com.google.firebase:firebase-core:9.0.0
cordova.system.library.3=com.google.firebase:firebase-messaging:9.0.0

Speicher die Datei

Dann nehmen Sie Build mit

 ionic cordova run android

Ich hoffe das wird für alle funktionieren

sijo vijayan
quelle
Dies hat nur den Fehler geändert. Das ist irgendwie gut, da ich selbst bei Tausenden von Lösungen nur den gleichen Fehler erhalten habe.
Raumfahrer
2

Fügen Sie diese Zeile am unteren Rand des Gradles hinzu.

Plugin anwenden: 'com.google.gms.google-services'

weil es oben nicht funktioniert. Ich hatte ein ähnliches Problem.

Mudassir Khan
quelle
1

Wenn Sie auch Firebase enthalten haben, stellen Sie diese auf dieselbe Version ein, wie im Fehler angegeben.

srlgrg
quelle
0

Ich hatte kein Problem damit, bis ich versuchte, die Ortungsdienste zu verwenden. Zu diesem Zeitpunkt musste ich die apply plugin: 'com.google.gms.google-services'am Ende der Datei und nicht am Anfang platzieren. Der Grund dafür ist, dass es Kollisionsprobleme gibt, wenn Sie es oben haben. Wenn Sie es unten platzieren, vermeiden Sie diese Probleme.

BlackHatSamurai
quelle
-1

Ihr Ziel ist SDKmöglicherweise höher als das SDKdes Geräts. Ändern Sie dies. Auf Ihrem Gerät wird beispielsweise API 23 ausgeführt, Ihr Ziel SDKist jedoch 25. Ändern Sie 25 in 23.

Mohit Mishra
quelle