Lorsque j'essaie d'exécuter la commande ionic cordova build Android
erreur sur le titre ci-dessus. Ensuite, j'essaie de supprimer l'un des gms
. Lorsque je reconstruis, l'élément supprimé apparaît à nouveau. Comment résoudre ce problème?.
Voici mes dépendances de mon build.gradle
:
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.google.Android.gms:play-services-auth:+" // i remove this
compile "com.google.Android.gms:play-services-identity:+"
compile "com.facebook.Android:facebook-Android-sdk:4.+"
// SUB-PROJECT DEPENDENCIES END
}
J'ai rencontré ce problème assez récemment et le problème pour moi était que, pour une raison quelconque, le fichier Android project.properties avait été généré avec différentes versions pour le com.google.Android.gms, en tant que tel). :
target=Android-26
Android.library.reference.1=CordovaLib
cordova.system.library.1=com.Android.support:support-v4:24.1.1+
cordova.system.library.2=com.google.Android.gms:play-services-auth:+
cordova.system.library.3=com.google.Android.gms:play-services-identity:+
cordova.system.library.4=com.google.Android.gms:play-services-location:11.+
Cela rend la bibliothèque.2 et la bibliothèque.3 requièrent une version alors que la bibliothèque.4 nécessite une version plus spécifique, ce qui provoque la référence de la bibliothèque en double lors de la compilation.
Bien que je ne pense pas que cela devrait être la solution finale, ajouter la bibliothèque spécifique a fonctionné pour moi. En tant que tel:
target=Android-26
Android.library.reference.1=CordovaLib
cordova.system.library.1=com.Android.support:support-v4:24.1.1+
cordova.system.library.2=com.google.Android.gms:play-services-auth:11.+
cordova.system.library.3=com.google.Android.gms:play-services-identity:11.+
cordova.system.library.4=com.google.Android.gms:play-services-location:11.+
dans build.gradle ajouter ceci
configurations.all {
resolutionStrategy {
force "com.google.Android.gms:play-services-ads:11.8.0"
force "com.google.Android.gms:play-services-base:11.8.0"
force "com.google.Android.gms:play-services-gcm:11.8.0"
force "com.google.Android.gms:play-services-analytics:11.8.0"
force "com.google.Android.gms:play-services-location:11.8.0"
force "com.google.Android.gms:play-services-basement:11.8.0"
force "com.google.Android.gms:play-services-tagmanager:11.8.0"
force 'com.google.firebase:firebase-core:11.8.0'
force 'com.google.firebase:firebase-crash:11.8.0'
force 'com.google.firebase:firebase-auth:11.8.0'
force 'com.google.firebase:firebase-common:11.8.0'
force 'com.google.firebase:firebase-config:11.8.0'
force 'com.google.firebase:firebase-messaging:11.8.0'
}
}
si cela ne fonctionne pas, recherchez dans votre projet la chaîne '12.0.0.0 'et ajoutez-la dans la liste au-dessus de la bibliothèque manquante
Cela se produit à cause des services de lecture 12.0.0. Je suis allé de l'avant et j'ai rétrogradé les dépendances à 11.8.0 (dernière version de travail connue de mon projet). J'utilise réagit natif. J'avais 2 dépendances qui tiraient 12.0.0 des services de jeu de Google - com.google.Android:play-services...12.0.0 J'espère que cela vous aidera.
Choses que je devais faire pour que la construction réussisse sur mon application Ionic3:
C’est peut-être la pire façon de faire fonctionner les choses, mais cela m’a sauvé la vie. J'espère que ça aide quelqu'un!
Peut-être que cela concernait la nouvelle version des services Google Play 12.0.0 (publiée le 20 mars 2018) Je l'ai résolu en corrigeant les dépendances: Ajouter une configuration dans Android/build.gradle
allprojects {
repositories {
...
configurations.all {
resolutionStrategy {
// Add force (11.0.0 is version you want to use)
force 'com.google.firebase:firebase-core:11.0.0'
force 'com.google.firebase:firebase-crash:11.0.0'
force 'com.google.firebase:firebase-analytics:11.0.0'
force 'com.google.firebase:firebase-messaging:11.0.0'
force 'com.google.Android.gms:play-services-base:11.0.0'
force 'com.google.Android.gms:play-services-maps:11.0.0'
force 'com.google.Android.gms:play-services-wallet:11.0.0'
}
}
}
}
Ensemble de dépendances sont de votre Android/app/build.gradle
Dans mon cas
npm update
cordova platform remove Android
cordova platform add [email protected]
Et remplacer dans la plate-forme/Android/project.properties
cordova.system.library.1=com.Android.support:support-v4+
À
cordova.system.library.1=com.Android.support:support-v4:26+
Pour référence, à partir de: https://developers.google.com/Android/guides/releases
API Google pour Android
20 mars 2018 - Version 12.0.0
Problèmes connus liés à la version 12.0.0
Nous fournirons une version 12.0.1 mise à jour pour résoudre ces problèmes bientôt.
Ma solution de contournement
(basé sur le commentaire suivant de jeremy castellianswer et keldar )
J'utilise la solution de contournement suivante (et j'insiste sur le fait qu'il s'agit d'une solution de contournement).
Ajoutez ce qui suit au bas de build-extras.gradle, en créant le fichier si nécessaire.
configurations.all {
resolutionStrategy {
force 'com.google.firebase:firebase-core:11.8+',
'com.google.firebase:firebase-messaging:11.8+',
'com.google.firebase:firebase-crash:11.8+',
'com.google.firebase:firebase-config:11.8+',
'com.google.firebase:firebase-auth:11.8+',
'com.google.Android.gms:play-services-tagmanager:11.8+',
'com.google.Android.gms:play-services-location:11.8+'
}
}
Il est important d'inclure toutes les références de la bibliothèque firebase et Android.gms. Si vous en manquez une, la création échouera. Grep vos fichiers de classement pour toutes les références. Dans mon cas, j'avais raté firebase-auth, qui était référencé dans le fichier .gradle du dossier du plugin firebase.
Ce que resolutionStrategyforce
fait est de remplacer les choix de version faits par le projet/plugins et de forcer gradle à faire référence à une version spécifique.
Il n'est pas nécessaire de modifier project.properties ou tout autre fichier de gradé à l'aide de cette solution de contournement.
[~ # ~] met à jour [~ # ~]
La cause de cette erreur a été identifiée comme un bogue dans version 12.0.0 de la bibliothèque de services Google Play :
Problèmes connus liés à la version 12.0.0 -license Les dépendances POM provoquent "plusieurs bibliothèques portant le nom de package" com.google.Android.gms.license "" questions dans Ionic Pro.
Le bogue a été corrigé dans version 12.0.1 de la bibliothèque de services Google Play :
Restaure des noms de package uniques pour les artefacts de licence liés au moment de l’exécution qui ont affecté les problèmes de compatibilité de certains systèmes de compilation (par exemple Ionic Pro)].
Par conséquent, spécifier la v12.0.1 ou une version ultérieure de Play Services Library via le plugin cordova-Android-play-services-gradle-release résout le problème, par exemple:
cordova plugin add cordova-Android-play-services-gradle-release --variable PLAY_SERVICES_VERSION=12.+
Lorsque vous exécutez la commande ionic cordova , vous pouvez modifier la version. J'ai la même erreur et j'ai résolu le problème en modifiant la version de mes modules de noeuds, mon plugin cordova, version désactivée Android studio.
Ma conf ci-dessous:
Android STUDIO: 3.0.0
pply plugin: 'com.Android.application'
buildscript {repositories {jcenter () maven {url " https://maven.google.com "}}
// Switch the Android Gradle plugin version requirement depending on the
// installed version of Gradle. This dependency is documented at
// http://tools.Android.com/tech-docs/new-build-system/version-compatibility
// and https://issues.Apache.org/jira/browse/CB-8143
dependencies {
classpath 'com.Android.tools.build:gradle:2.2.3'
classpath 'com.google.gms:google-services:3.1.1' // google-services plugin
}
}
// Autorise les plugins à déclarer les dépendances Maven via build-extras.gradle. allprojects {référentiels {jcenter () maven {url " https://maven.google.com "}}}
wrapper de tâche (type: Wrapper) {gradleVersion = '2.14.1'}
... ... ...
... ...
appliquer le plugin: 'com.google.gms.google-services'
Version de Gradle: 3.3 com.google.Android.gms: play-services: 11.4.2
Parfois, module de nœud et plug-in cordova se trompent, vous supprimez donc manuellement dans le dossier. N'oubliez pas de supprimer et d'ajouter le plugin Cordova lorsque vous le mettez à jour.
Essayez d'aller dans Android studio => fichiers => structure du projet => projet => ok normalement Android studio doit synchroniser votre diplôme
[~ # ~] ou [~ # ~]
Erreur: plusieurs bibliothèques portant le nom du package com.google.Android.gms.license
Dans mon cas, le problème était parce que je comprenais:
compile 'com.google.Android.gms:play-services-wearable:+'
compile 'com.google.Android.gms:play-services:4.4.52'
les services de jeu portables, et le régulier. J'ai commenté la partie portable, et ça marche. Pas sûr si j'en aurai besoin, mais cela a été inclus par défaut par l'assistant de projet
J'espère que je peux vous aider. Continue !
Ça marche pour moi.
node_modules/react-native-camera/Android/build.gradle:
dependencies {
compile 'com.facebook.react:react-native:+'
compile 'com.google.Android.gms:play-services-gcm:11.8.0' // update by me on
20180321
}
il suffit de changer de plate-forme/Android/project.properties pour
target=Android-26
Android.library.reference.1=CordovaLib
cordova.system.library.1=com.Android.support:support-v4:24.1.1+
cordova.system.library.2=com.google.Android.gms:play-services-auth:11.+
cordova.system.library.3=com.google.Android.gms:play-services-identity:11.+
cordova.system.library.4=com.google.Android.gms:play-services-location:11.+
cela a fonctionné pour moi
Seulement cela a fonctionné pour moi dans build.gradle
:
allprojects {
repositories {
...
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.google.Android.gms') {
details.useVersion '11.8.0'
}
if (requested.group == 'com.google.firebase') {
details.useVersion '11.8.0'
}
}
}
}
}
https://github.com/evollu/react-native-fcm/issues/857#issuecomment-375243825
1. Allez à project.properties (dans le dossier de votre plate-forme)
2. J'utilisais simplement Google Analytics dans mon "projet.properties" et je devais ajouter "11. +" à la fin de la version, ce qui a fonctionné pour moi. Je ne suis pas sûr que ce soit une solution à long terme, mais le problème a été résolu.
cordova.system.library.2=com.google.Android.gms:play-services-analytics:11.+
Pour moi, il s’agissait d’ajouter un numéro de version aux services Google Play dans le fichier project.properies.
Donc, vous devez changer quelque chose comme:
Android.library.reference.1=CordovaLib
cordova.system.library.2=com.google.Android.gms:play-services-auth:
cordova.system.library.3=com.google.Android.gms:play-services-identity:
à:
Android.library.reference.1=CordovaLib
cordova.system.library.2=com.google.Android.gms:play-services-auth:11.
cordova.system.library.3=com.google.Android.gms:play-services-identity:11.
Je faisais face à la même erreur dans mon ionic projet). Après quelques recherches, je suis sur le point de mettre à niveau la Android plate-forme requise pour la dernière Android Gradle Plugin afin de construire l’application.
La solution est très facile Il suffit de suivre l’étape mentionnée ci-dessous.
plate-forme ionique cordova supprimer Android
Ajouter la version minimale Android SDK Build Tools 26.0.2 à Android Le gestionnaire de SDK à utiliser est le dernier Android Gradle Plugin afin de construire l'application
Ajouter la version minimale pour la plateforme Android
plate-forme ionique cordova ajouter Android@^6.4.0