Google Play Services GCM 9.2.0 chiede di "aggiornare" di nuovo a 9.0.0


178

Quindi questa mattina ho iniziato ad aggiornare all'ultima versione delle mie librerie di progetti.

Sto cercando di aggiornare GCM all'ultima versione 9.2.0, ma ottengo questo errore:

Errore: esecuzione non riuscita per l'attività ": app: processDebugGoogleServices". Correggi il conflitto di versione aggiornando la versione del plug-in di servizi Google (le informazioni sull'ultima versione sono disponibili su https://bintray.com/android/android-tools/com.google.gms.google-services/ ) o aggiornando la versione di com.google.android.gms alla 9.0.0.

Ecco come ho il mio codice:

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

E poi:

dependencies {
    ...

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

    ...
}

Qualcuno ha lo stesso problema / risolto lo stesso problema?

Grazie.

MODIFICARE

Apparentemente devi applicare il tuo plugin GSM nella parte inferiore del tuo file app / build.gradle. Altrimenti, la versione 9.2.0 provocherà conflitti nel progetto.

Per riferimento, ecco come appare il mio file app / build.gradle ora:

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"

stesso problema qui, sono tornato alla 9.0.0
mbonnin

@mbonnin Ho finito per fare lo stesso. Ma sicuramente vorrei sapere cosa sta succedendo qui. Non sono ancora stato fortunato a trovare una risposta.
Herrmartell,

2
E poi 9.0.0 ha questo bug stackoverflow.com/questions/37361651/... e la soluzione sembra essere quella di aggiornamento al 9.2.0 .... che non è possibile grazie al bug qui :-(
mbonnin

6
funziona se applico il plugin alla fine del file build.gradle come dice Gusthema sotto
mbonnin

Leggi come correggere questo problema nel modo giusto nel mio post qui .
Pedro Varela,

Risposte:


507

Hai la linea

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

riga nella parte inferiore del file build.gradle della tua app?

Ho visto alcuni errori quando era in alto e come è scritto qui , dovrebbe essere in fondo.


11
Questo non è vero, il plugin gms dovrebbe essere nella parte inferiore del file, come puoi vedere qui nella documentazione di gms: developers.google.com/android/guides/google-services-plugin
Gusthema

1
Sono corretto. Indipendentemente da ciò, questo non risolverà il problema.
herrmartell,

1
Non sono sicuro del motivo per cui la prima volta che l'ho provato, non ha funzionato. Ho appena provato di nuovo a causa del commento di @mbonnin e ora funziona. Grazie.
Herrmartell,

9
Avevo aggiunto questa riga all'inizio del file, ma ha funzionato dopo averlo messo in fondo.
SHA2NK,

2
L'aggiunta del plug-in in basso ha risolto il conflitto di versione.
Pratima,

54

Inserisci questa riga nella parte inferiore del file del modulo dell'app (non della radice del progetto) gradle.

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

Quindi ricostruisci il tuo progetto.


11

Ho avuto lo stesso problema, oggi 2016 - ottobre - 06 ho risolto con questo:

Ho cambiato tutte le dipendenze che iniziano con 9.?.? alla 9.6.1 ho compilato con la versione 24 di sdk e la versione di destinazione 17.

Ci sono altri pacchetti nella mia soluzione perché ho usato più cose e solo autenticazione.

Dopo aver modificato build.gradle (Modulo: app) con il codice seguente, fallo:

  1. Metti il ​​tuo pacchetto NAME in linea con le parole applicationId "com.YOUR_PACKAGE_HERE"

  2. Sincronizza il tuo progetto (Ctrl + alt + v) e Build Again.

Questo è il codice del file buid.gradle (Modulo: app) che ha funzionato per me:

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'

6

La stessa situazione era con le versioni precedenti. È irritante che le nuove versioni delle librerie com.google.android.gms vengano sempre rilasciate prima del plug-in ed è impossibile utilizzare la nuova versione perché incompatibile con il vecchio plug-in. Non so se il plug-in è ora richiesto (Google Docs fa schifo). Ricordo i momenti in cui non lo era. L'unico modo è aspettare la nuova versione del plugin, oppure puoi provare a rimuovere le dipendenze del plugin, ma come ho detto non sono sicuro che gcm funzionerà senza di essa. Quello che so che la caratteristica principale della versione 9.2.0 è la nuova API di sensibilizzazione https://inthecheesefactory.com/blog/google-awareness-api-in-action/en , se non ne hai bisogno, puoi utilizzare 9.0. 0 versione senza alcun problema.


Ah, vai a capire. Poiché non esiste alcuna documentazione che indichi diversamente, ho ipotizzato che le versioni più recenti sarebbero state implementate con il plug-in richiesto. AFAIK, hai bisogno del plugin per far funzionare GCM, quindi suppongo che questa sia una soluzione di controllo manuale per l'aggiornamento.
Herrmartell,

1
Sicuramente @yaneq google docs fa schifo, ho subito lo stesso problema
Lutaaya Huzaifah Idris

5

La soluzione di Gustavomcls per cambiare la versione di com.google. * Con la stessa versione ha funzionato per me.

Cambio entrambe le dipendenze in 9.2.1 in buid.gradle (Modulo: app)

compile 'com.google.firebase:firebase-ads:9.2.1'
compile 'com.google.android.gms:play-services:9.2.1'

Ho avuto questo problema anche a causa di Firebase, ma non mi piace questa soluzione per eseguire il downgrade della versione Firebase alla 9.2.1
Sam Bellerose,

2

apri app/build.gradledal modulo dell'app e riscrivi sotto la riga dopo il blocco delle dipendenze. Ciò consente al plug-in di determinare quale versione dei servizi Play stai utilizzando

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

Ho avuto questa idea da qui . In questo tutorial il secondo punto sta dicendo che la riga sopra del plugin si trova nella parte inferiore del app/build.gradlefile in modo che non vengano introdotte collisioni di dipendenza. Spero che ti possa aiutare.


Perché ripeti le risposte che sono state date un anno e mezzo fa?
Bevor

2

Per Cordova OR Ionic Hybrid App

Ho un problema molto simile con il mio Ionic 1 Cordova Build dopo l'integrazione di Firebase Cloud Messaging (FCM)

Ho risolto questo problema con i seguenti passaggi

Quindi una soluzione sarà: dentro le piattaforme / Android open project.properties (è un file), avrai qualcosa del genere

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

Sostituisci il

+

Firma con il numero di versione di destinazione, come il seguente

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

Salva il file

Quindi prendi build usando

 ionic cordova run android

Spero che questo funzioni per tutti


Questo ha appena cambiato l'errore. Questo è abbastanza buono perché ho ricevuto lo stesso errore anche con migliaia di soluzioni tentate.
astronauta il

2

Aggiungi questa linea nella parte inferiore della pendenza.

applica plug-in: "com.google.gms.google-services"

perché la parte superiore non funziona. Stavo affrontando un problema simile.


1

se hai incluso anche Firebase, rendili della stessa versione dell'errore.


0

Non ho avuto problemi con questo fino a quando non ho provato a utilizzare i servizi di localizzazione, a quel punto ho dovuto mettere il apply plugin: 'com.google.gms.google-services'in fondo al file, piuttosto che in alto. Il motivo è che quando lo hai in cima ci sono problemi di collisione e posizionandolo in basso, eviti questi problemi.


-1

Il tuo obiettivo SDKpotrebbe essere più alto rispetto SDKal dispositivo, modificalo. Ad esempio, sul dispositivo è in esecuzione l'API 23 ma l'obiettivo SDKè 25. Cambia da 25 a 23.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.