cordova - support - or updating the version of com google android gms to 9.0 0 ionic
La compilaciĆ³n de FCMPlugin falla debido a un conflicto de versiĆ³n con los servicios de google gms (5)
Estoy usando esto con ionic 2 en Windows para Android. Cuando agrego el complemento cordova-plugin-fcm, ya no puedo construir el proyecto. Aquí está el error que estoy recibiendo:
BUILD FAILED
Total time: 4.697 secs
Error: cmd: Command failed with exit code 1 Error output:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task '':processDebugGoogleServices''.
> Please fix the version conflict either by updating the version of the google-services plugin (i
nformation about the latest version is available at https://bintray.com/android/android-tools/com
.google.gms.google-services/) or updating the version of com.google.android.gms to 9.2.0.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get mor
e log output.
Debajo hay un fragmento de mi config.xml:
<plugin name="cordova-plugin-console" spec="~1.0.3"/>
<plugin name="cordova-plugin-facebook4" spec="~1.7.3">
<variable name="APP_ID" value="XXX"/>
<variable name="APP_NAME" value="XXX"/>
</plugin>
<plugin name="cordova-plugin-whitelist" spec="~1.2.2"/>
<plugin name="cordova-plugin-statusbar" spec="~2.1.3"/>
<plugin name="cordova-plugin-splashscreen" spec="~3.2.2"/>
<plugin name="ionic-plugin-keyboard" spec="~2.2.1"/>
<plugin name="cordova-plugin-camera"/>
<plugin name="cordova-plugin-geolocation" spec="https://github.com/apache/cordova-plugin-geolocation"/>
<plugin name="cordova-plugin-googlemaps" spec="https://github.com/phonegap-googlemaps-plugin/cordova-plugin-googlemaps">
<variable name="API_KEY_FOR_ANDROID" value="XXXX"/>
<variable name="API_KEY_FOR_IOS" value="XXXX"/>
</plugin>
<plugin name="cordova-plugin-file-transfer" spec="~1.5.1"/>
<plugin name="cordova-plugin-file" spec="~4.2.0"/>
<plugin name="cordova-plugin-device" spec="~1.1.2"/>
He leído esto y estas publicaciones relacionadas que sugieren agregar esta línea a build.gradle (que se crea automáticamente por iónica):
apply plugin: ''com.google.gms.google-services''
He intentado agregarlo a build-extras.gradle sin suerte.
En mi build.graddle, veo esta línea:
// PLUGIN GRADLE EXTENSIONS START
apply from: "cordova-plugin-fcm/upfront-FCMPlugin.gradle"
// PLUGIN GRADLE EXTENSIONS END
Y también estas líneas:
dependencies {
compile fileTree(dir: ''libs'', include: ''*.jar'')
// SUB-PROJECT DEPENDENCIES START
debugCompile project(path: "CordovaLib", configuration: "debug")
releaseCompile project(path: "CordovaLib", configuration: "release")
compile "com.facebook.android:facebook-android-sdk:4.14.+"
compile "com.google.android.gms:play-services-maps:+"
compile "com.google.android.gms:play-services-location:+"
// SUB-PROJECT DEPENDENCIES END
}
¿Qué me estoy perdiendo y cómo puedo solucionar este problema?
Tuve el mismo problema. Resultó que tenía phonegap-plugin-push y cordova-plugin-fcm instalados. Ellos estaban causando el conflicto. Tuve que eliminar uno de ellos. Créditos a: https://github.com/fechanique/cordova-plugin-fcm/issues/90#issuecomment-243435681
Algo extraño me pasó, cuando eliminé el plugin google-maps, construí el proyecto y lo ejecuté en mi dispositivo, todo funcionó perfectamente y todos los mapas se cargaron bien.
Para resolver este error, vaya al Proyecto -> plataforma ...> android ->. Gradlefile y modifique la línea
buildscript {
repositories {
jcenter()
mavenLocal()
}
dependencies {
classpath ''com.android.tools.build:gradle:+''
classpath ''com.google.gms:google-services:3.0.0'' //change this line
}
} // aplicar complemento: se debe usar la clase // ''com.google.gms.google-services'' en lugar de id (cadena) para poder aplicar el complemento desde el complemento de aplicación de archivo gradle no root: com.google.gms. googleservices.GoogleServicesPlugin
Me encontré con este hilo, en caso de que esto sea útil para cualquier persona, aquí están el conjunto de archivos y cambios que hice para que mi cliente de Android compilara bien. Estaba teniendo un conflicto con cordova-plugin-fcm y cordova-plugin-googleplus. Aquí hay un
plataformas / android / build.gradle
dependencies {
classpath ''com.android.tools.build:gradle:2.2.3''
// I added this:
classpath ''com.google.gms:google-services:3.1.0''
}
..
allprojects {
repositories {
// changed the + to 10.2.0
compile "com.google.android.gms:play-services-auth:10.2.0"
compile "com.google.android.gms:play-services-identity:10.2.0"
}
}
// at end of the promptForReleaseKeyPassword function, add this:
def promptForReleaseKeyPassword() {
...
apply plugin: ''com.google.gms.google-services''
}
android / project.properties (cambiado + a 10.2.0)
cordova.system.library.3=com.google.android.gms:play-services-auth:10.2.0
cordova.system.library.4=com.google.android.gms:play-services-identity:10.2.0
cordova-plugin-fcm / mobile-FCMPlugin.gradle (este archivo fue complicado)
dependencies {
classpath ''com.android.tools.build:gradle:+''
classpath ''com.google.gms:google-services:3.1.0''
}
...
// apply plugin: ''com.google.gms.google-services'' moved into this postBuildExtras function.
// class must be used instead of id(string) to be able to apply plugin from non-root gradle file
ext.postBuildExtras = {
apply plugin: com.google.gms.googleservices.GoogleServicesPlugin
}
Lo solucioné
enchufes:
https://github.com/mauron85/cordova-plugin-background-geolocation
https://github.com/fechanique/cordova-plugin-fcm
1). eliminar la plataforma: cordova platform rm android.
2). modificar: plugins / cordova-plugin-fcm / src / android / FCMPlugin.gradle
reemplazar:
apply plugin: com.google.gms.googleservices.GoogleServicesPlugin
con:
ext.postBuildExtras = {
apply plugin: com.google.gms.googleservices.GoogleServicesPlugin
}
3) agregar plataforma: plataforma cordova agregar Android.
4) modificar: plataformas / android / project.properties
cambie el "+" por "11.4.2":
com.google.firebase:firebase-core:+
com.google.firebase:firebase-messaging:+
com.google.android.gms:play-services-location:+
debería verse así:
com.google.firebase:firebase-core:11.4.2
com.google.firebase:firebase-messaging:11.4.2
com.google.android.gms:play-services-location:11.4.2
eso es todo :).