Google Play Services GCM 9.2.0 solicita "actualizar" de nuevo a 9.0.0

178

Así que esta mañana comencé a actualizar a la última versión de las bibliotecas de mi proyecto.

Estoy tratando de actualizar GCM a la última versión 9.2.0, pero aparece este error:

Error: Falló la ejecución de la tarea ': aplicación: processDebugGoogleServices'. Corrija el conflicto de la versión actualizando la versión del complemento de servicios de google (la información sobre la última versión está disponible en https://bintray.com/android/android-tools/com.google.gms.google-services/ ) o actualizar la versión de com.google.android.gms a 9.0.0.

Así es como tengo mi código:

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

Y entonces:

dependencies {
    ...

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

    ...
}

¿Alguien tiene el mismo problema / solucionó el mismo problema?

Gracias.

EDITAR

Aparentemente, debe aplicar su complemento GSM en la parte inferior de su archivo app / build.gradle. De lo contrario, la versión 9.2.0 causará conflictos en su proyecto.

Como referencia, así es como se ve mi archivo app / build.gradle ahora:

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
fuente
mismo problema aquí, volví a 9.0.0
mbonnin
@mbonnin Terminé haciendo lo mismo. Pero seguramente me gustaría saber qué está pasando aquí. No he tenido suerte de encontrar una respuesta todavía.
herrmartell 01 de
2
Y luego 9.0.0 tiene este error stackoverflow.com/questions/37361651/… y la solución parece ser actualizar a 9.2.0 .... Lo cual no es posible gracias al error aquí :-(
mbonnin
66
funciona si aplico el complemento al final del archivo build.gradle como dice Gusthema a continuación
mbonnin
Lea cómo corregir este problema de la manera correcta en mi publicación aquí .
Pedro Varela

Respuestas:

507

Tienes la linea

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

línea en la parte inferior del archivo build.gradle de su aplicación?

Vi algunos errores cuando estaba en la parte superior y, como está escrito aquí , debería estar en la parte inferior.

Gusthema
fuente
11
Eso no es cierto, el complemento gms debe estar en la parte inferior del archivo, como puede ver aquí en los documentos para gms: developers.google.com/android/guides/google-services-plugin
Gusthema
1
Estoy corregido. En cualquier caso, esto no resolverá el problema.
herrmartell
1
No estoy seguro de por qué la primera vez que lo probé no funcionó. Solo lo intenté nuevamente por el comentario de @mbonnin, y está funcionando ahora. Gracias.
herrmartell
9
Había agregado esta línea al comienzo del archivo, pero funcionó después de ponerla en la parte inferior.
SHA2NK
2
Agregar el complemento en la parte inferior resolvió el conflicto de versión.
Pratima
54

Simplemente coloque esta línea al final del gradlearchivo del módulo de la aplicación (no del proyecto raíz) .

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

Luego reconstruye tu proyecto.

Vikas
fuente
11

Tuve el mismo problema, hoy 2016 - octubre - 06 resolví con esto:

Cambié todas las dependencias que comenzaron con 9.?.? a 9.6.1 compilé con sdk versión 24 y destino versión 17.

Hay otros paquetes en mi solución porque usé más cosas que solo autenticación.

Después de cambiar su build.gradle (Módulo: aplicación) con el siguiente código, hágalo:

  1. Ponga su paquete NAME en la línea con las palabras applicationId "com.YOUR_PACKAGE_HERE"

  2. Sincronice su proyecto (Ctrl + alt + v) y Construya de nuevo.

Este es el código del archivo buid.gradle (Módulo: aplicación) que funcionó para mí:

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
fuente
6

La misma situación fue con las versiones anteriores. Es molesto que las nuevas versiones de las bibliotecas com.google.android.gms siempre se publiquen antes del complemento, y es imposible usar una nueva versión porque es incompatible con el complemento anterior. No sé si ahora se requiere el complemento (Google Docs es una mierda). Recuerdo momentos en que no fue así. La única forma es esperar la nueva versión del complemento, o puede intentar eliminar las dependencias del complemento, pero como dije, no estoy seguro de si gcm funcionará sin él. Lo que sé es que la característica principal de la versión 9.2.0 es la nueva API Awareness https://inthecheesefactory.com/blog/google-awareness-api-in-action/en , si no la necesita, puede usar 9.0. Versión 0 sin ningún problema.

yaneq6
fuente
Ah, imagínate. Como no hay documentación que indique lo contrario, supuse que las versiones más recientes se lanzarían con el complemento requerido. AFAIK, necesita el complemento para que GCM funcione, así que supongo que esta es una solución de verificación manual para actualizaciones.
herrmartell 01 de
1
Por supuesto, @yaneq google docs apesta, tengo el mismo problema ahora mismo
Lutaaya Huzaifah Idris el
5

La solución de Gustavomcls para cambiar la versión com.google. * A la misma versión me funcionó.

Cambio ambas dependencias a 9.2.1 en buid.gradle (Módulo: aplicación)

compile 'com.google.firebase:firebase-ads:9.2.1'
compile 'com.google.android.gms:play-services:9.2.1'
Rahul Bagal
fuente
También tuve este problema debido a Firebase, pero no me gusta esta solución para degradar la versión de Firebase a 9.2.1
Sam Bellerose
2

ábralo app/build.gradledesde su módulo de aplicación y vuelva a escribir debajo de la línea después del bloque de dependencias. Esto permite que el complemento determine qué versión de los servicios de Play está utilizando

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

Tengo esta idea de aquí . En este tutorial, el segundo punto dice que la línea del complemento anterior debe estar al final de su app/build.gradlearchivo para que no se introduzcan colisiones de dependencia. Espero que te ayude.

Rahul Sharma
fuente
¿Por qué repites las respuestas que se dieron hace medio año?
Bevor
2

Para la aplicación Cordova OR Ionic Hybrid

Tengo un problema muy similar con mi Ionic 1 Cordova Build después de integrar Firebase Cloud Messaging (FCM)

Solucioné este problema siguiendo los siguientes pasos

Entonces, una solución será: dentro de las plataformas / android open project.properties (es un archivo), tendrá algo como esto

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

Reemplace la

+

Firme con su número de versión de destino, como el siguiente

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

Guarda el archivo

Luego toma build usando

 ionic cordova run android

Espero que esto funcione para todos

sijo vijayan
fuente
Esto solo cambió el error. Eso es bastante bueno, ya que solo he recibido el mismo error incluso con miles de soluciones probadas.
astronauta
2

Agregue esta línea en la parte inferior de la gradle.

aplique el complemento: 'com.google.gms.google-services'

porque la parte superior no funciona. Estaba enfrentando un problema similar.

Mudassir Khan
fuente
1

si también tiene Firebase incluido, haga que tengan la misma versión que dice el error.

srlgrg
fuente
0

No tuve ningún problema con esto hasta que traté de usar los Servicios de ubicación, momento en el que tuve que ponerlo apply plugin: 'com.google.gms.google-services'al final del archivo, en lugar de al principio. La razón es que cuando lo tienes en la parte superior hay problemas de colisión, y al colocarlo en la parte inferior, evitas ese problema.

BlackHatSamurai
fuente
-1

Su objetivo SDKpuede ser más alto que SDKel del dispositivo, cambie eso. Por ejemplo, su dispositivo ejecuta API 23 pero su objetivo SDKes 25. Cambie 25 a 23.

Mohit Mishra
fuente