Usługi Google Play GCM 9.2.0 prosi o „aktualizację” z powrotem do wersji 9.0.0

178

Więc dziś rano zacząłem aktualizować do najnowszej wersji bibliotek projektów.

Próbuję zaktualizować GCM do najnowszej wersji 9.2.0, ale pojawia się ten błąd:

Błąd: wykonanie nie powiodło się dla zadania „: app: processDebugGoogleServices”. Napraw konflikt wersji, aktualizując wersję wtyczki usług Google (informacje o najnowszej wersji są dostępne na stronie https://bintray.com/android/android-tools/com.google.gms.google-services/ ) lub aktualizację wersji com.google.android.gms do 9.0.0.

Oto jak mam swój kod:

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

I wtedy:

dependencies {
    ...

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

    ...
}

Czy ktoś ma ten sam problem / naprawił ten sam problem?

Dzięki.

EDYTOWAĆ

Najwyraźniej musisz zastosować wtyczkę GSM na dole pliku app / build.gradle. W przeciwnym razie wersja 9.2.0 spowoduje konflikt w twoim projekcie.

Dla porównania, tak wygląda teraz mój plik app / build.gradle:

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
źródło
ten sam problem tutaj, przywróciłem do wersji 9.0.0
mbonnin
@mbonnin Skończyło się na tym samym. Ale z pewnością chciałbym wiedzieć, co się tutaj dzieje. Nie miałem szczęścia znaleźć odpowiedzi.
herrmartell
2
A potem 9.0.0 ma ten błąd stackoverflow.com/questions/37361651/... i wydaje się, że rozwiązaniem jest aktualizacja do wersji 9.2.0 .... Co nie jest możliwe dzięki
błędowi
6
działa, jeśli zastosuję wtyczkę na końcu pliku build.gradle, tak jak Gusthema mówi poniżej
mbonnin
Przeczytaj, jak rozwiązać ten problem we właściwy sposób w moim poście tutaj .
Pedro Varela

Odpowiedzi:

507

Czy masz linię?

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

wiersz u dołu pliku build.gradle aplikacji?

Widziałem kilka błędów, gdy był na szczycie i co jest napisane tutaj , powinno być na dole.

Gusthema
źródło
11
To nieprawda, wtyczka gms powinna znajdować się na dole pliku, jak widać tutaj w dokumentacji dla gms: developers.google.com/android/guides/google-services-plugin
Gusthema
1
Poprawiono mnie. Niezależnie od tego nie rozwiąże to problemu.
herrmartell
1
Nie jestem pewien, dlaczego po raz pierwszy spróbowałem, to nie zadziałało. Właśnie spróbowałem ponownie z powodu komentarza @mbonnin i teraz działa. Dziękuję Ci.
herrmartell
9
Dodałem ten wiersz na początku pliku, ale zadziałał po umieszczeniu go na dole.
SHA2NK
2
Dodanie wtyczki u dołu rozwiązało konflikt wersji.
Pratima
54

Po prostu umieść ten wiersz na dole gradlepliku modułu aplikacji (nie roota projektu) .

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

Następnie odbuduj swój projekt.

Vikas
źródło
11

Miałem ten sam problem, dziś 2016 - październik - 06 Rozwiązałem to:

Zmieniłem wszystkie zależności, które zaczęły się od 9.?.? do 9.6.1 skompilowałem z sdk w wersji 24 i wersją docelową 17.

W moim rozwiązaniu są inne pakiety, ponieważ użyłem więcej rzeczy niż tylko uwierzytelnienia.

Po zmianie swojego build.gradle (Module: app) z poniższym kodem zrób to:

  1. Umieść swój pakiet NAME w wierszu ze słowami applicationId „com.YOUR_PACKAGE_HERE”

  2. Zsynchronizuj projekt (Ctrl + alt + v) i buduj ponownie.

To jest kod pliku buid.gradle (Module: app), który działał dla mnie:

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
źródło
6

Ta sama sytuacja miała miejsce w poprzednich wersjach. Niepokojące jest to, że nowe wersje bibliotek com.google.android.gms zawsze zwalniają przed wtyczką i nie można używać nowej wersji, ponieważ jest niezgodna ze starą wtyczką. Nie wiem, czy wtyczka jest teraz wymagana (Dokumenty Google są do bani). Pamiętam czasy, kiedy tak nie było. Jedynym sposobem jest poczekanie na nową wersję wtyczki lub możesz spróbować usunąć zależności wtyczek, ale jak powiedziałem, nie jestem pewien, czy gcm będzie działać bez niej. Wiem, że główną cechą wersji 9.2.0 jest nowy interfejs API Awareness https://inthecheesefactory.com/blog/google-awareness-api-in-action/en , jeśli nie byłeś potrzebny, możesz użyć 9.0. Wersja 0 bez żadnych problemów.

yaneq6
źródło
Ach, idź do przodu. Ponieważ nie ma dokumentacji wskazującej inaczej, założyłem, że najnowsze wersje będą działać z wymaganą wtyczką. AFAIK, potrzebujesz wtyczki, aby GCM działał, więc domyślam się, że jest to rozwiązanie do ręcznego sprawdzania aktualizacji.
herrmartell
1
Na pewno @yaneq Google Docs jest do bani, mam teraz ten sam problem
Lutaaya Huzaifah Idris
5

Rozwiązanie Gustavomcls polegające na zmianie wersji com.google. * Na tę samą wersję działało dla mnie.

Zmieniam obie zależności na 9.2.1 w buid.gradle (moduł: aplikacja)

compile 'com.google.firebase:firebase-ads:9.2.1'
compile 'com.google.android.gms:play-services:9.2.1'
Rahul Bagal
źródło
Miałem ten problem również z powodu bazy ogniowej, ale nie podoba mi się to rozwiązanie, aby obniżyć wersję bazy ogniowej do wersji 9.2.1
Sam Bellerose
2

otwórz app/build.gradlez modułu aplikacji i przepisz poniżej wiersza po bloku zależności. To pozwala wtyczce określić, jakiej wersji usług Play używasz

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

Mam ten pomysł stąd . W tym samouczku drugi punkt mówi, że powyżej linii wtyczki znajdź się na dole app/build.gradlepliku, aby nie wprowadzać kolizji zależności. Mam nadzieję, że to ci pomoże.

Rahul Sharma
źródło
Dlaczego powtarzacie odpowiedzi udzielone pół roku temu?
Bevor
2

Dla aplikacji Cordova OR Ionic Hybrid

Mam bardzo podobny problem z kompilacją Ionic 1 Cordova po zintegrowaniu Firebase Cloud Messaging (FCM)

Rozwiązałem ten problem, wykonując następujące czynności

Tak więc jedną poprawką będzie: wewnątrz platform / android open project.properties (jest to plik), będziesz mieć coś takiego

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:+

Zastąp

+

Wpisz swój docelowy numer wersji - jak poniżej

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

Zapisz plik

Następnie weź kompilację za pomocą

 ionic cordova run android

Mam nadzieję, że to zadziała dla wszystkich

Sijo Vijayan
źródło
To właśnie zmieniło błąd. Jest to całkiem dobre, ponieważ otrzymuję ten sam błąd, nawet pomimo tysięcy wypróbowanych rozwiązań.
kosmita
2

Dodaj tę linię na dole stopnia.

zastosuj wtyczkę: „com.google.gms.google-services”

bo to góra nie działa. Miałem podobny problem.

Mudassir Khan
źródło
1

jeśli masz również Firebase, zrób z nich tę samą wersję, co mówi błąd.

srlgrg
źródło
0

Nie miałem z tym problemu, dopóki nie spróbowałem skorzystać z usług lokalizacji, w którym to momencie musiałem umieścić apply plugin: 'com.google.gms.google-services'na dole pliku, a nie na górze. Powodem jest to, że gdy masz go na górze, występują problemy z kolizją, a umieszczając go na dole, unikasz tych problemów.

BlackHatSamurai
źródło
-1

Twój cel SDKmoże być wyższy niż SDKurządzenia, zmień to. Na przykład na Twoim urządzeniu działa interfejs API 23, ale twoim celem SDKjest 25. Zmień wartość 25 na 23.

Mohit Mishra
źródło