Système d'exploitation : macOS Sierra 10.12.6
Nœud : 6.10.2
Fil : 1.3.2
npm: 3.10.10
Gardien : 4.9.0
Xcode : introuvable
Android Studio : 3.0 AI-171.4443003
Packages : (recherché => installé)
réagir : 16.2.0 => 16.2.0
réactif natif : 0,53,3 => 0,53,3
Merci d'avoir posté ça ! Il semble que votre problème manque certaines informations nécessaires. Pouvez-vous exécuter react-native info
et modifier votre problème pour inclure ces résultats dans la section Environnement ?
Merci pour vos contributions.
pareil ici.
Hier, j'ai pu construire mon projet, mais aujourd'hui matin, tout à coup, il a échoué.
Je n'ai pas du tout changé mon code.
Peut-être que c'est lié à la nouvelle version de Google Play services 12.0.0
(sortie le 20 mars 2018)
il m'est arrivé la même chose mais avec cordova, sans avoir fait de modification à mon code
Environnement:
Système d'exploitation : macOS Sierra 10.12.6
Nœud : 6.10.2
Fil : 1.3.2
npm: 3.10.10
Gardien : 4.9.0
Xcode : introuvable
Android Studio : 3.0 AI-171.4443003
Packages : (recherché => installé)
réagir : 16.2.0 => 16.2.0
réactif natif : 0,53,3 => 0,53,3
L'erreur arrive-t-elle pour un module spécifique ? Dans le mien, j'avais la bibliothèque react-native-camera qui l'utilisait dans son propre build.gradle, (sous Gradle Scripts dans Android Studio)
dependencies {
....
compile 'com.google.android.gms:play-services-vision:+'
....
}
Ce qui l'amenait à utiliser la dernière version non prise en charge, ce qui a soulevé ce problème.
Changez simplement cette ligne en compile 'com.google.android.gms:play-services-vision:11.6.0'
ou la version compatible la plus récente pour vous.
J'ai subi le même problème. C'est OK l'après-midi dernier, mais erreur de build ce matin.
ÉCHEC : la génération a échoué avec une exception.
Erreur : plusieurs bibliothèques avec le nom de package « com.google.android.gms.license »
Mon environnement comme ci-dessous :
réaction-native-cli: 2.0.1
natif réactif : 0.44.3
npm : 5.5.1
OS : Windows 10
Changez ce +
en 11.6.0
dans node_modules/react-native-device-info/android/build.gradle
Comme solution temporaire bien sûr
Il y a un problème pertinent auquel vous pouvez vous référer.
je suis confronté au même problème
* What went wrong:
Execution failed for task ':react-native-mauron85-background-geolocation:processReleaseResources'.
> Error: more than one library with package name 'com.google.android.gms.license'
Environnement:
Système d'exploitation : Linux 4.13
Nœud : 6.11.4
Fil : introuvable
npm: 3.10.10
Gardien : introuvable
Xcode : N/A
Android Studio : introuvable
Packages : (recherché => installé)
réagir : 16.3.0-alpha.2 => 16.3.0-alpha.2
réactif natif : 0,54,2 => 0,54,2
D'un autre côté, j'ai un projet très similaire (c'est fondamentalement le même) mais avec react-native 0.48.4 et dans ce cas cela fonctionne bien.
Je viens de corriger en ajoutant la ligne ci-dessous dans gradle.properties
googlePlayServicesVersion=11.6.0 .
compiler 'com.google.android. gms:play-services-vision :11.8.0'
11.8.0 est OK
Quand j'ai essayé ceci :
Je viens de corriger en ajoutant la ligne ci-dessous dans gradle.properties
googlePlayServicesVersion=11.6.0 .
J'ai eu:
* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugApk'.
> A problem occurred configuring project ':react-native-device-info'.
> Could not resolve all dependencies for configuration ':react-native-device-info:_debugPublishCopy'.
> Could not find com.google.android.gms:play-services-gcm:11.6.0.
Searched in the following locations:
...
Et quand j'ai essayé ceci :
compiler 'com.google.android. gms:play-services-vision :11.8.0'
11.8.0 est OK
J'ai eu:
* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugApkCopy'.
> Could not find com.google.android.gms:play-services-vision:11.8.0.
Searched in the following locations:
...
@justcarthy Ouais, ça marche.
ressource trouvée qui correspond au nom donné : attr ' android:keyboardNavigationCluster '. j'ai cette erreur
@augusto-altman Vous pouvez essayer celui-ci .
Dans mon cas, j'ai réussi à le résoudre en alignant toutes les versions de com.google.firebase dans 'platforms/android/project.properties' sur une ancienne version telle que ci-dessous :
cordova.system.library.4=com.google. firebase:firebase-core :11.+
cordova.system.library.5=com.google. firebase:firebase-messages :11.+
cordova.system.library.6=com.google. firebase:firebase-crash :11.+
cordova.system.library.7=com.google. firebase:firebase-config :11.+
cordova.system.library.8=com.google.android. gms:play-services-location :11.+
cordova.system.library.9=com.google.android. gms:play-services-auth :11.+
cordova.system.library.10=com.google.android. gms:play-services-identity :11.+
Ce qui précède a été modifié en : 11.+ au lieu de : +
De plus, tout inclut, par exemple (cordova-plugin-firebase/android-build.gradle) doit également être modifié comme ci-dessus. Cela peut être une solution temporaire jusqu'à ce que vous parveniez à comprendre ce qui ne va pas avec la version 12.0.0.
Qu'est ce qui ne s'est pas bien passé:
L'exécution a échoué pour la tâche ':react-native- google-signin:processReleaseResources '.Erreur : plusieurs bibliothèques avec le nom de package « com.google.android.gms.license »
Essayer:
Exécutez avec l'option --stacktrace pour obtenir la trace de la pile. Exécutez avec l'option --info ou --debug pour obtenir plus de sorties de journal.ÉCHEC DE CONSTRUCTION
Je corrige l'erreur en changeant compile 'com.google.android.gms:play-services-auth:+'
en compile 'com.google.android.gms:play-services-auth:11.6.0'
sur node_modules/react-native-google-signin/build.gradle
Ça marche pour moi.
node_modules/react-native-device-info/android/build.gradle :
dépendances {
compiler 'com.facebook. réagir:réagir-natif :+'
compiler 'com.google.android. gms:play-services-gcm :11.8.0' // mise à jour par moi le 20180321
//compiler 'com.google.android. gms:play-services-gcm :+'
}
Cela a fonctionné pour moi. Modifier /android/build.gradle
.(pas /android/app/build.gradle
)
Vous devez vérifier quels modules gms sont requis pour votre projet. Vous pouvez trouver les modules gms requis dans chaque fichier build.gradle
de chaque plugin natif qui utilise gms.
Dans mon cas, je devais vérifier les 4 prochains plugins. react-native-admob
, react-native-maps
, react-native-onesignal
, react-native-google-sign-in
. Les noms de module peuvent être différents selon le projet.
ou, vous pouvez vérifier les noms de modules requis en exécutant la commande gradlew app:dependencies
.(exécuté dans le répertoire Android)
// This is not need to be 11.8.0. Use your required version.
def googlePlayServicesVersion = '11.8.0'
allprojects {
repositories {
...
configurations.all {
resolutionStrategy {
// react-native-admob
force "com.google.android.gms:play-services-ads:$googlePlayServicesVersion"
// react-native-maps
force "com.google.android.gms:play-services-base:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-maps:$googlePlayServicesVersion"
// react-native-onesignal
force "com.google.android.gms:play-services-gcm:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-analytics:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-location:$googlePlayServicesVersion"
// react-native-google-sign-in
force "com.google.android.gms:play-services-auth:$googlePlayServicesVersion"
}
}
...
}
}
#PlayServicesGate
comment le résoudre? à l'aide
@ZKeLin Je viens de com.google.firebase et com.google.android de android/app/build.gradle
:
...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.firebase:firebase-core:11.0.0'
compile 'com.google.firebase:firebase-crash:11.0.0'
compile 'com.google.firebase:firebase-analytics:11.0.0'
compile 'com.google.firebase:firebase-messaging:11.0.0'
compile 'com.google.android.gms:play-services-base:11.0.0'
compile 'com.google.android.gms:play-services-maps:11.0.0'
compile 'com.google.android.gms:play-services-wallet:11.0.0'
...
}
et mettez-les dans android/build.gradle
allprojects {
repositories {
...
configurations.all {
// #PlayServicesGate — March, 20 2018
resolutionStrategy {
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'
}
}
}
}
Utilisez vos propres versions à partir de android/app/build.gradle
Je ne peux pas installer ...play-services-*:11.8.0 . Pourquoi? duo à mon studio android est trop vieux?
J'ai également été confronté au même problème dans le développement natif de réaction.
je viens d'utiliser les réponses @isnifer et @nopedev ..
Cela a fonctionné pour moi.
Avant l'édition
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def overrideVersion = versionOverrides[details.requested.group + ":" + details.requested.name]
if (overrideVersion != null && details.requested.version != overrideVersion) {
println("********************************************************")
println("Overriding dependency ${details.requested.group}:${details.requested.name} version ${details.requested.version} --> $overrideVersion")
details.useVersion overrideVersion
println("********************************************************")
}
}
}
Après
configurations.all {
resolutionStrategy{
force "com.google.android.gms:play-services-ads: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"
eachDependency { DependencyResolveDetails details ->
def overrideVersion = versionOverrides[details.requested.group + ":" + details.requested.name]
if (overrideVersion != null && details.requested.version != overrideVersion) {
println("********************************************************")
println("Overriding dependency ${details.requested.group}:${details.requested.name} version ${details.requested.version} --> $overrideVersion")
details.useVersion overrideVersion
println("********************************************************")
}
}
}
}
Le bord qui saigne vraiment saigne pour moi maintenant
J'ai aussi un problème avec la connexion google, j'ai résolu ce problème. modifier \node_modules\react-native-google-signin\android\build.gradle
compile 'com.google.android.gms:play-services-auth:+
changer +
en 11.6.0
+1
Les suggestions de
Éditer
android/build.gradle
travaille pour moi
...
allprojects {
repositories {
...
configurations.all {
resolutionStrategy {
force "com.google.android.gms:play-services-auth:11.8.0"
}
}
}
}
j'ai eu
Qu'est ce qui ne s'est pas bien passé:
L'exécution a échoué pour la tâche ':react-native- device -
Erreur : plusieurs bibliothèques avec le nom de package « com.google.android.gms.license »
et
Qu'est ce qui ne s'est pas bien passé:
L'exécution a échoué pour la tâche ':react-native-push-notification- info:processReleaseResources '.
Erreur : plusieurs bibliothèques avec le nom de package « com.google.android.gms.license »
et je les ai résolus en changeant en node-modules/react-native-device-info/android/build.gradle
compile 'com.google.android.gms:play-services-gcm:11.6.0'
Mais maintenant j'ai un plus générique
- Qu'est ce qui ne s'est pas bien passé:
L'exécution a échoué pour la tâche ': app:processReleaseResources '.
Erreur : plusieurs bibliothèques avec le nom de package « com.google.android.gms.license »
Comment résoudre cela ??
THX
même problème
Environnement:
Système d'exploitation : macOS High Sierra 10.13.4
Nœud : 8.9.4
Fil : 1.3.2
npm : 5.6.0
Gardien : 4.9.0
Xcode : Xcode 9.1 Build version 9B55
Android Studio : 3.0 AI-171.4443003
Packages : (recherché => installé)
réagir : ^16.3.0-alpha.1 => 16.3.0-alpha.1
réactif natif : 0,54,2 => 0,54,2
ÉCHEC : la génération a échoué avec une exception.
Qu'est ce qui ne s'est pas bien passé:
L'exécution a échoué pour la tâche ' :react-native- camera:processReleaseResources '.
Erreur : plusieurs bibliothèques avec le nom de package « com.google.android.gms.license »
Essayer:
Exécutez avec l'option --stacktrace pour obtenir la trace de la pile. Exécutez avec l'option --info ou --debug pour obtenir plus de sorties de journal.
J'obtenais l'erreur suivante lors de l'exécution de mon application (react-native run-android)
* What went wrong:
Execution failed for task ':react-native-device-info:processReleaseResources'.
> Error: more than one library with package name 'com.google.android.gms.license'
J'ai utilisé la solution de contournement @indrawanadjie et cela a fonctionné pour moi...
Je suis allé à node_modules/react-native-device-info/android/build.gradle
Dans la ligne
compile 'com.google.android.gms:play-services-auth:+
changer + en 11.6.0
Maintenant, cela ne devrait être qu'une solution rapide...
Si quelqu'un utilise react-native-camera, accédez à node-modules/react-native-camera/android et modifiez build.gradle
changer de:
dependencies{
....
compile 'com.google.android.gms:play-services-vision:+
}
à:
dependencies{
....
compile 'com.google.android.gms:play-services-vision:11.8.0
}
comme solution de contournement temporaire
Utilisation du plugin cordova firebase pour obtenir ce problème. Une solution là-dessus ????
Essayez de mettre à niveau le plugin gradle vers 3.0.1, cela aidera https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html
Vous pouvez également rencontrer des problèmes en raison de la limitation dex, multiDexEnabled true peut aider
Eh bien, c'est juste génial. L'ensemble de l'écosystème abattu par un "+" dans les dépendances dépendances dépendances de quelqu'un.
je change toutes les dépendances en 12.0.0 mais firebase affiche une erreur en raison de dépendances internes
J'avais besoin de changer :
compile "com.google.android.gms:play-services-wallet:11.8.0"
en android/app/build.gradle
et
compile 'com.google.android.gms:play-services-analytics:11.8.0'
en node_modules/react-native-google-analytics-bridge/android/build.gradle
et ça marche maintenant
@AndrejGajdos vous avez raison mais ce n'est pas une solution pour changer quelque chose dans node_modules cela fonctionne en local mais pas dans une nouvelle version
dans ionic // ajoutez ceci dans platform/build.gradle/
tous les projets {
référentiels {
jcenter()
maven {
URL " https://maven.google.com "
}
configurations.all {
stratégie de résolution {
// Ajout de force (11.4.0 est la version que vous souhaitez utiliser)
forcer 'com.google. firebase:firebase-messages :11.4.0'
forcer 'com.google. firebase:firebase-core :11.4.0'
forcer 'com.google.android. gms:play-services-gcm :11.4.0'
}
}
}
}
travaille pour moi
@jigaryadav correct.
@AndrejGajdos, votre solution ne fonctionnera pas sur CI.
Excluez simplement les mauvais deps des modules dans android/app/build.gradle
pour utiliser vos propres versions de deps, par exemple, voici notre configuration sur Tipsi :
dependencies {
...
compile(project(':react-native-firebase-crash-report')) {
exclude group: 'com.google.firebase', module: 'firebase-core'
exclude group: 'com.google.firebase', module: 'firebase-crash'
}
compile(project(':react-native-firebase-analytics')) {
exclude group: 'com.google.firebase', module: 'firebase-core'
exclude group: 'com.google.firebase', module: 'firebase-analytics'
}
compile(project(':react-native-fcm')) {
exclude group: "com.google.firebase"
}
}
:processDebugResources
ÉCHOUÉ
ÉCHEC : la génération a échoué avec une exception.
.....
cible=android-26
android.library.reference.1=CordovaLib
cordova.gradle.include.1=cordova-plugin-firebase/richer-build.gradle
cordova.system.library.1=com.google. gms:google-services :+
cordova.system.library.2=com.google.android. gms:play-services-tagmanager :+
cordova.system.library.3=com.google. firebase:firebase-core :+
cordova.system.library.4=com.google. firebase:firebase-messagerie :+
cordova.system.library.5=com.google. firebase:firebase-crash :+
cordova.system.library.6=com.google. firebase:firebase-config :+
J'ai essayé de changer cordova.system.library.3=com.google. firebase:firebase-core :+ à cordova.system.library.3=com.google. firebase:firebase-core :11.6.0
Rien ne fonctionne pour moi.
packages cli : (C:\Users\ADT-LPT88\AppData\Roaming\npm\node_modules)
@ionic/cli-utils : 1.13.1
ionique (Ionic CLI) : 3.13.1
forfaits mondiaux :
cordoue (Cordova CLI) : 7.1.0
forfaits locaux :
@ionic/app-scripts : 3.1.5
Plateformes Cordova : Android 6.3.0
Cadre ionique : ionique-angulaire 3.9.2
Système:
Outils SDK Android : 26.1.1
Nœud : v6.11.3
npm : 3.10.10
OS : Windows 7
Divers :
backend : pro
des idées?
j'ai aussi eu la même erreur j'ai utilisé l'extrait de code
configurations.all {
stratégie de résolution {
forcer 'com.google.android. gms:play-services-vision :10.2.0'
force 'com.android. support:exifinterface :27.+'
}
}
dans android/build.gradle
maintenant la construction a réussi mais a obtenu une erreur comme impossible de lire la propriété Aspect de non défini
chaque patch fonctionne bien pour l'instant mais je suis bloqué dans cette exécution. Est-ce que quelqu'un sait quel service utilise un signal ?
Execution failed for task ':react-native-onesignal:processReleaseResources'
Erreur : cmd : La commande a échoué avec le code de sortie 1 Sortie d'erreur :
ÉCHEC : la génération a échoué avec une exception.
Qu'est ce qui ne s'est pas bien passé:
L'exécution a échoué pour la tâche ':processDebugResources'.
Erreur : plusieurs bibliothèques avec le nom de package « com.google.android.gms.license »
Essayer:
Exécutez avec l'option --stacktrace pour obtenir la trace de la pile. Exécutez avec l'option --info ou --debug pour obtenir plus de sorties de journal.
@Lifesoftware, il y a tellement de réponses à votre erreur
@isnifer merci mec
@isnifer Lequel ??????
J'essaye toutes les réponses mais ça ne marche toujours pas.
@Lifesoftware affiche toutes les informations de débogage
@Lifesoftware c'est simple car je me
dans : android/build.gradle
configurations.all {
resolutionStrategy {
force "com.google.android.gms:play-services-gcm:11.8.0"
.... your other dependencies
}
}
cela a fonctionné pour moi car je suis resté bloqué dans un signal mais @isnifer m'a aidé et maintenant tout fonctionne bien
obtenir la même erreur
c'est un projet cordova
j'utilise ces plugins google
cordova-plugin-firebase 0.1.25 "Google Firebase Plugin"
cordova-plugin-geolocation 2.4.3-dev "Géolocalisation"
cordova-plugin-google-analytics 1.7.4 "Google Universal Analytics Plugin"
cordova-plugin-googleplus 5.1.1 "Google SignIn"
sa fonctionnait correctement.
du coup ça ne marche plus
j'ai essayé de changer la version en 11.0.0 dans build.gradle mais cela ne fonctionne pas pour moi
@Lifesoftware
avez-vous une solution pour cela ???
@jigaryadav s'il vous plaît vérifier que
j'utilise le plugin firbase.
configurations.all {
stratégie de résolution {
force 'com.android. prise en charge : support-v4 : 24.0.0'
forcer 'com.google.android. gms:play-services-vision :10.2.0'
force 'com.android. support:exifinterface :27.+'
}
}
@Lifesoftware utilisez-vous react-native-firebase
?
@smayur00
Toujours confronté au même problème
@jigaryadav
Pas de plugin cordova (cordova-plugin-firebase)
Je suis également confronté au même problème, maintenant incapable de construire apk.
Mon build.gradle contient,
compiler le projet(':react-native-orientation')
compiler le projet(':react-native-share')
compile(project(':react-native-firebase')) {
transitif = faux
}
compiler "com.google. firebase:firebase-invites :11.8.0"
compiler le projet(':react-native-google-analytics-bridge')
compiler le projet(':react-native-vector-icons')
compiler le projet(':react-native-send-intent')
compiler le projet(':react-native-onesignal')
compile(project(':react-native-maps')){
groupe d'exclusion : 'com.google.android.gms', module : 'play-services-base'
groupe d'exclusion : 'com.google.android.gms', module : 'play-services-maps'
}
compiler 'com.google.android. gms:play-services-base :11.8.0'
compiler 'com.google.android. gms:play-services-maps :+'
compiler le projet(':react-native-facebook-account-kit')
compiler le projet (':react-native-code-push')
compiler fileTree(dir: "libs", inclure: ["*.jar"])
compiler "com.android. support:appcompat-v7 :23.0.1"
compiler "com.facebook. react : react
Des suggestions s'il vous plaît
@Lifesoftware désolé aucune idée du plugin de Cordova mais la logique est la même, je suppose que vous devez trouver pour Cordova
@jigaryadav Pouvez-vous partager votre fichier build.gradle
De nombreuses bibliothèques migrent vers le nouveau mécanisme « Propriétés de configuration de Gradle ». Vérifiez vos bibliothèques associées pour voir si elles le prennent en charge.
react-native-maps
prend en charge googlePlayServicesVersion
react-native-device-info
prend en charge googlePlayServicesVersion
.
react-native-firebase
prend en charge firebaseVersion
ici @Lifesoftware
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'com.google.gms:google-services:3.2.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
mavenLocal()
jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
maven {
url 'https://maven.google.com'
}
configurations.all {
resolutionStrategy {
// react-native-onesignal
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"
// react-native-google-sign-in
force "com.google.android.gms:play-services-auth:11.8.0"
}
}
}
}
@jigaryadav J'utilise
Cela provoque cette erreur.
Savez-vous quelle ligne de force est requise sur « build.gradle » ?
Merci.
@sarykemmoun Voir mon commentaire ci-dessus pour react-native-firebase
et firebaseVersion
@sarykemmoun tout d'abord, voir le commentaire https://github.com/facebook/react-native/issues/18479#issuecomment-374938507 .
Êtes-vous sûr que react-native-firebase
provoque une erreur ? On dirait qu'ils ont une version fixe
@sarykemmoun comment définir cette variable voir ici — https://github.com/facebook/react-native/issues/18479#issuecomment -374849967
Tous ceux qui écoutent sur ce fil doivent effectuer les opérations suivantes.
Comme recommandé par le document Android Developer Gradle Tips & Tricks (voir « Configurer les propriétés à l'échelle du projet »), si l'application d'hébergement définit les propriétés suivantes dans leur racine build.gradle
, les modules homologues (comme react-native-maps
, react-native-firebase
, react-native-device-info
, etc) peut aligner ses dépendances comme demandé :
android/build.gradle
buildscript {...}
allprojects {...}
/**
* Project-wide gradle configuration properties for use by all modules
* NOTE: Set your versions here as desired using the existing values defined in your
* android/app/build.gradle
*/
+ext {
+ compileSdkVersion = 26
+ targetSdkVersion = 26
+ buildToolsVersion = "26.0.2"
+ supportLibVersion = "26.1.0"
+ googlePlayServicesVersion = "11.8.0"
+ firebaseVersion = "11.8.0" // <-- if you're using react-native-firebase
+ androidMapsUtilsVersion = "0.5+" // <-- for react-native-maps
+}
android/app/build.gradle
android {
+ compileSdkVersion rootProject.compileSdkVersion
+ buildToolsVersion rootProject.buildToolsVersion
defaultConfig {
+ targetSdkVersion rootProject.targetSdkVersion
}
}
dependencies {
compile fileTree(dir: "libs", include: ["*.jar"])
+ compile "com.android.support:appcompat-v7:$rootProject.supportLibVersion"
compile "com.facebook.react:react-native:+" // From node_modules
}
Cela fournit un bien meilleur mécanisme pour aligner la version play-services
que toutes les vilaines affaires de exclude group
:
groovy
...
dependencies {
...
compile(project(':react-native-maps')){
exclude group: 'com.google.android.gms', module: 'play-services-base'
exclude group: 'com.google.android.gms', module: 'play-services-maps'
}
compile 'com.google.android.gms:play-services-base:10.0.1'
compile 'com.google.android.gms:play-services-maps:10.0.1'
}
Merci, @christocracy et @isnifer .
@christocracy corrigez-moi si je comprends mal. Votre solution ne nous aidera que si le module tiers la prend en charge, n'est-ce pas ? Par exemple, si le module tiers utilise simplement une version générique en tant que "+" au lieu de $firebaseVersion , cela ne fonctionnera pas.
@isnifer Correct. Les modules tiers doivent être à l' écoute de ces variables. De plus en plus le font. Espérons que cet événement offre un "coup de pied dans le pantalon" à tous les développeurs de modules :)
Il ne devrait plus y avoir de version:+
.
@christocracy merci, cela signifie que nous devons également l'utiliser dans tipsi-stripe
.
Si vous avez déjà changé de version sur /android/build.gradle mais que vous ne travaillez pas encore. Peut-être avez-vous besoin de vérifier un package de bibliothèque sur node_modules. Par exemple, react-native-onesignal compile également certains services de jeu avec la version la plus élevée (ils utilisent +) afin qu'il puisse créer ce problème.
Vous pouvez placer un script dans le répertoire racine et ajouter {"scripts": {"postinstall": "node changeVersionGoogleService.js"
}} dans le package .json afin qu'il puisse s'exécuter pour modifier automatiquement votre version lors de l'installation de npm.
Voici le script : https://gist.github.com/duytq94/47ef945131b61de538447d449813b3d4
Mon script change maintenant automatiquement de version 'react-native-onesignal',
'réagir-natif-admob',
'react-native-maps',
'react-native-google-sign-in'
@isnifer Haha. J'ai eu un problème posté sur mon module react-native-background-geolocation
impliquant tipsi-stripe
. Je voulais y envoyer le même PR que j'ai envoyé à react-native-maps
:)
Si quelqu'un utilise un module avec une version codée en dur play-services
/ firebase
(par exemple : :+
), envoyez-lui un lien vers mon PR à react-native-maps
. C'est une chose très simple et non invasive à mettre en œuvre pour un développeur de module.
@isnifer (du
@christocracy haha, nous publierons la v5 aujourd'hui. @ngoryachev travaille sur le changelog maintenant. À bientôt)
En ce moment chez Google, le gars qui a sorti la mise à jour 12.0.0 : "Ça va me coûter"
Ma seule solution, après avoir tout essayé, était d'ajouter ce qui suit au android/build.gradle
:
allprojects {
repositories {
...
configurations.all {
resolutionStrategy {
force "com.google.android.gms:play-services-gcm:11.8.0"
force "com.google.android.gms:play-services-auth:11.8.0"
}
}
}
}
@gesf J'ai dû faire quelque chose de similaire car l'une de mes dépendances ne prend pas en charge la variable googlePlayServicesVersion (encore). Il y a un PR sur ce référentiel pour le mettre à jour, alors gardez peut-être un œil sur les dépendances qui sont brisées pour voir si elles sont mises à jour dans un proche avenir (ou l'ont déjà été). Ensuite, vous devriez pouvoir supprimer la section configurations.all et nous pourrons tous pousser un soupir de soulagement !
C'est ainsi que j'ai corrigé dans mon projet (le bit com.android.support était déjà là, j'ai ajouté com.google.android.gms et com.google.firebase)
configurations.all {
resolutionStrategy {
eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '25.3.1'
}
}
if (requested.group == 'com.google.android.gms') {
details.useVersion '11.8.0'
}
if (requested.group == 'com.google.firebase') {
details.useVersion '11.8.0'
}
}
}
}
@jigaryadav , @AndrejGajdos , @isnifer
J'ai changé à tous les endroits du fichier de propriétés en 11.+, j'ai eu une erreur différente cette fois :thinking: :thinking:
voici mon fichier de propriétés
cible=android-26
android.library.reference.1=CordovaLib
cordova.gradle.include.1=cordova-plugin-firebase/app-build.gradle
cordova.system.library.1=com.google. gms:google-services :11.+
cordova.system.library.2=com.google.android. gms:play-services-tagmanager :11.+
cordova.system.library.3=com.google. firebase:firebase-core :11.+
cordova.system.library.4=com.google. firebase:firebase-messages :11.+
cordova.system.library.5=com.google. firebase:firebase-crash :11.+
cordova.system.library.6=com.google. firebase:firebase-config :11.+
et l'erreur est :
Qu'est ce qui ne s'est pas bien passé:
Un problème est survenu lors de la configuration du projet racine « android ».
Impossible de résoudre toutes les dépendances pour la configuration ':_debugApkCopy'.
ÉCHEC DE CONSTRUCTION
Temps total : 8,075 secondes
Impossible de trouver une version correspondant à com.google. gms:google-services :11+.
Versions qui ne correspondent pas :
3.2.0
3.1.2
3.1.1
3.1.0
3.0.0
Pour cela, j'ai ajouté le code de version Android et ios-CFBundleVersion à mon config.xml, toujours la même erreur
quelqu'un peut-il m'aider à ce sujet?
@ vsreddy91 Vous recherchez l'assistance de Cordova sur un fil React Native .
C'est comme chercher de l'aide pour votre Honda chez un concessionnaire Tesla.
@poppiestar , merci beaucoup pour votre contribution ! Je pense que tu as raison. Par sécurité, je vais appliquer la technique @joeflateau (merci aussi pour ça), pour l'instant !
J'ai cette erreur :
"Qu'est ce qui ne s'est pas bien passé:
L'exécution a échoué pour la tâche ':RND eviceInfo:processReleaseResources '.
Erreur : plusieurs bibliothèques avec le nom de package 'com.google.android.gms.license'"
Quelqu'un peut-il m'aider? Merci!
@arcbook126 react-native-device-info
connaît la propriété de configuration Gradle googlePlayServicesVersion
. Configurez-le sur 11.8.0
, comme indiqué dans mon commentaire ci-dessus
cd android && ./gradlew app:dependencies --configuration compile
notez cette commande, elle vous indiquera quelle version de Google Play est utilisée dans toutes les bibliothèques importées.
Projet ouvert en studio et dans toutes les bibliothèques tierces remplacer
compiler 'com.google. firebase:firebase-messaging :+' avec une version spécifique comme celle-ci.
compiler 'com.google. firebase:firebase-messages :11.8.0'
vous utilisez peut-être d'autres bibliothèques non seulement fcm, vison ou autre, mais en règle générale, il est déclaré d'utiliser une version spécifique de celle-ci, cela vous facilitera la vie.
Merci.
@christocracy nous avons publié
@isnifer Mais vous n'avez pas implémenté les variables googlePlayServicesVersion
ou supportLibVersion
?
Voici quelque chose qui pourrait vous aider : si vous dépendez d'un ou plusieurs modules qui n'ont pas encore corrigé leur version de dépendance gradle, vous pouvez utiliser patch-package pour modifier la version dans node_modules
et générer un correctif qui persistent même sur les serveurs de build ou CI, sans avoir besoin de créer votre propre copie du référentiel du module.
@christocracy Ils sont passés à 11.8 à la place. @isnifer Êtes-vous en mesure de suivre les changements de rupture de 11,8 à 12 ?
@christocracy oui, nous avons fait un RP hier, mais #PlayServicesGate l'a fait aujourd'hui :) Vous pouvez nous aider)
@coreh ouais, sympa !
@yangtaufoo tu tipsi-stripe
?
@isnifer je ne comprends pas ce que tu veux dire.
Quoi qu'il en soit, j'ai réalisé que exclude group
est obsolète (je n'en suis pas sûr), mais jetez un œil à @ https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration .html#exclude_dependencies ou peut-être que les mots-clés de dépendance ont changé (https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#new_configurations)
Edit 1 - Trouvé une autre source de support (https://stackoverflow.com/questions/48365687/gradle-exclude-group-from-compile). Ainsi, la compilation est toujours utilisable et cette solution pourrait fonctionner. Faut le tester.
De
exclude group: 'com.jakewharton.threetenabp', module: 'threetenabp'
À
variant.getCompileConfiguration().exclude group: 'com.jakewharton.threetenabp', module: 'threetenabp'
+1 a commencé à recevoir cela aujourd'hui aussi
* What went wrong:
Execution failed for task ':app:processReleaseResources'.
> Error: more than one library with package name 'com.google.android.gms.license'
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
android/app/build.gradle
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.22.1'
}
}
apply plugin: "com.android.application"
apply plugin: 'io.fabric'
import com.android.build.OutputFile
project.ext.react = [
entryFile: "index.js"
]
apply from: "../../node_modules/react-native/react.gradle"
def enableSeparateBuildPerCPUArchitecture = false
def enableProguardInReleaseBuilds = false
android {
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
defaultConfig {
applicationId "....."
minSdkVersion 16
targetSdkVersion rootProject.targetSdkVersion
versionCode 1
versionName "1.0"
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
signingConfigs {
release {
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86"
}
}
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a":1, "x86":2]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
}
repositories {
flatDir {
dirs "../../node_modules/react-native-background-geolocation/android/libs"
}
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
compile project(':react-native-maps')
compile project(':react-native-check-app-install')
compile project(':react-native-vector-icons')
compile project(':react-native-splash-screen')
compile fileTree(dir: "libs", include: ["*.jar"])
compile "com.android.support:appcompat-v7:$rootProject.supportLibVersion"
compile "com.facebook.react:react-native:+" // From node_modules
compile(project(':react-native-background-geolocation')) {
exclude group: 'com.google.android.gms', module: 'play-services-location'
}
compile(name: 'tslocationmanager', ext: 'aar')
compile(project(':react-native-maps')) {
exclude group: 'com.google.android.gms'
}
compile ('com.google.android.gms:play-services-location:+') {
force = true;
}
compile ("com.google.android.gms:play-services-base:+") {
force = true;
}
compile ("com.google.android.gms:play-services-maps:+") {
force = true;
}
compile('com.crashlytics.sdk.android:crashlytics:2.6.7<strong i="10">@aar</strong>') {
transitive = true
}
}
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}
@christocracy , j'ai essayé votre méthode mais cela n'a pas fonctionné.
@EsdrasEtrenne Je viens de publier react-native-background-geolocation @ 2.12.0-beta.1
environ 7 minutes. Il est publié maintenant sur npm.
oh génial,
mise à jour, j'ai corrigé mes dépendances pour supprimer l'exclusion, cela fonctionne ...
Je viens de réaliser que vous disiez que si vous avez ces configurations globales, vous pouvez supprimer l'exclusion
dependencies {
compile project(':react-native-maps')
compile project(':react-native-check-app-install')
compile project(':react-native-vector-icons')
compile project(':react-native-splash-screen')
compile fileTree(dir: "libs", include: ["*.jar"])
compile "com.android.support:appcompat-v7:$rootProject.supportLibVersion"
compile "com.facebook.react:react-native:+" // From node_modules
compile project(':react-native-background-geolocation')
compile(name: 'tslocationmanager', ext: 'aar')
compile project(':react-native-maps')
compile('com.crashlytics.sdk.android:crashlytics:2.6.7<strong i="9">@aar</strong>') {
transitive = true
}
@EsdrasEtrenne Vous voudrez porter une attention particulière à la nouvelle documentation de configuration Android. Beaucoup de choses ont changé. Imaginez que vous installez le plugin pour la première fois. Si vous avez d'autres problèmes, publiez un problème sur le dépôt.
Nous l'avons corrigé en forçant tous les com.google.android.gms
vers une version spécifique
en /android/app/gradle.properties
:
...
googlePlayServicesVersion=11.8.0
...
en /android/app/build.gradle
:
...
dependencies {
...
compile ("com.google.android.gms:play-services-auth:$googlePlayServicesVersion") {force = true}
compile ("com.google.android.gms:play-services-analytics:$googlePlayServicesVersion") {force = true}
compile ("com.google.android.gms:play-services-location:$googlePlayServicesVersion") {force = true}
compile ("com.google.android.gms:play-services-gcm:$googlePlayServicesVersion") {force = true}
...
}
...
en /android/build.gradle
:
def googlePlayServicesVersion = googlePlayServicesVersion
...
allprojects {
repositories {
...
configurations.all {
resolutionStrategy {
force "com.google.android.gms:play-services-gcm:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-analytics:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-location:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-auth:$googlePlayServicesVersion"
}
}
}
}
Maintenant, cela fonctionne parfaitement 🎉 🎉 🎉
marque
@dwicao, vous pouvez déplacer la gradle.properties
vers android/build.gradle
et la mettre comme ceci...
buildscript {...}
allprojects {...}
ext {
googlePlayServicesVersion=11.8.0
}
googlePlayServicesVersion
seront alors disponibles tout au long de vos études.
Cela a fonctionné hier, puis s'arrête soudainement de fonctionner aujourd'hui. Je ne sais pas vraiment qui blâmer et c'est vraiment ennuyeux. Je fais déjà de la même manière que ce qui a été suggéré (en utilisant ext pour définir la variable globale et exclure + forcer la combinaison dans la compilation) mais j'obtiens toujours une erreur, je suis à court d'idées. Forçant actuellement tous les services de jeu de Google à 11.6.2 (voir ci-dessous). Aussi je suis sur un projet d'expo détaché.
....
compile(...) {
exclude group: 'com.google.android.gms'
}
compile ("com.google.android.gms:play-services:11.6.2") {
force = true;
}
Capturez la sortie de :
$ cd android
$ ./gradlew app:dependencies
Enregistrer dans un fichier et joindre. Ne collez
@christocracy https://gist.github.com/pencilcheck/ed4a4a3ab5f9e2228c5772df1c8a901a voici la sortie.
Ce qui est étrange, c'est que je ne trouve aucune bibliothèque nommée "...android.gms.license"
Quel gâchis est Expo. Modifiez votre commentaire précédent et publiez votre app/build.gradle dans un autre message.
Merci de prendre le temps. Voici l'essentiel de app/build.gradle : https://gist.github.com/pencilcheck/d4cf17590430ec639db596e41c36d831
La version de la bibliothèque de support doit correspondre à compileSdkVersion. Lorsque compileSdkVersion 26
, vous devez utiliser la version 26 correspondante de la bibliothèque de support, par exemple 26.1.0
.
Vous spécifiez une version de la bibliothèque de support de 23
Après être passé à 26.1.0 pour la version support lib à l'aide de la variable définie ci-dessus, le problème persiste, j'obtiens toujours la même erreur.
C'est bizarre, je pensais que la solution de ce fil devrait s'appliquer à toutes les dépendances dans tous les sous-projets, n'est-ce pas ?
Étant donné que cette erreur provient de react-native-device-info, la modification du problème de version de la bibliothèque de support n'affecte pas vraiment cela.
Error:Execution failed for task ':react-native-device-info:processDebugResources'.
> Error: more than one library with package name 'com.google.android.gms.license'
react-Native-device-info comprend la variable spécifiquement nommée supportLibVersion
et utilisez-vous la dernière version de react-native-device-info
?
Voir le Wiki de mon react-native-background-geolocation
Vous voudrez définir ext.googlePlayServicesVersion
. react-native-device-info
est également conscient de cette variable.
@pencilcheck Faites ceci dans votre android/build.gradle
buildscript {...}
allprojects {...}
ext {
googlePlayServicesVersion=11.8.0
}
@christocratie
En fait, non, je ne le suis pas. C'était 0.11.0, maintenant mis à niveau vers 0.21.2 et réessayé et cela semble fonctionner maintenant avec votre solution de contournement.
Merci!
@yangtaufoo oui, j'utilisais en fait une ancienne version de la bibliothèque, c'est pourquoi elle n'était pas au courant des changements. Mais apprécie toujours l'aide et les commentaires. Merci!
Haha, maintenant l'erreur a disparu mais réapparaît dans "react-native-onesignal", bordel !
@pencilcheck c'est sur toutes les bibliothèques qui utilisent GMS, je pense que vous devez bifurquer et appliquer les changements de gradle s'ils ne le prennent pas encore en charge. Ma première hypothèse est que nous (tous les packages utilisant GMS) devrons peut-être déplacer com.android.tools.build:gradle
, buildToolsVersion
, com.android.support:appcompat-v7
, com.google.gms:google-services
vers la dernière version prenant en charge la version 3.0 brancher.
Vous êtes foutu avec un seul signal . Comme vous pouvez le voir, leurs versions sont toutes codées en dur. Ce module n'est pas au courant des propriétés de votre configuration gradle. Ils ont besoin de mon RP que j'ai envoyé à 'react-native-maps', posté ci-dessus dans ce fil.
Les derniers packages de services Google Play ont causé le problème. Dans mon application, j'ai utilisé les packages suivants - react-native-google-signin , react-native-google-analytics-bridge , react-native-device-info . Chacun d'eux a la dépendance avec com.google.android.gms . Dans le fichier gradle de construction de chaque package, vous trouverez quelque chose de similaire à celui-ci : com.google.android. + tirera le dernier paquet et cela a causé le problème. Voici le correctif temporaire si vous ne souhaitez pas mettre à niveau les packages et définir la variable env pour la version -
dans votre fichier gradle de construction de niveau supérieur, ajoutez le code suivant -
allprojects {
repositories {
configurations.all {
resolutionStrategy {
force "com.google.android.gms:play-services-analytics:11.8.0"
force "com.google.android.gms:play-services-auth:11.8.0"
force "com.google.android.gms:play-services-gcm:11.8.0"
}
}
...
Modification du fichier build.gradle dans cordova-plugin-firebase
compiler 'com.google. firebase:firebase-crash :11.+'
compiler 'com.google. firebase:firebase-auth :11.+'
Et le fichier project.properties
cible=android-25
android.library.reference.1=CordovaLib
cordova.gradle.include.3=cordova-plugin-firebase/project-build.gradle
cordova.system.library.3=com.google. gms:google-services :+
cordova.system.library.4=com.google.android. gms:play-services-tagmanager :11.+
cordova.system.library.5=com.google. firebase:firebase-core :11.+
cordova.system.library.6=com.google. firebase:firebase-messages :11.+
cordova.system.library.7=com.google. firebase:firebase-crash :11.+
cordova.system.library.8=com.google. firebase:firebase-config :11.+
Et enfin, mon problème a été résolu, j'ai pu construire le projet correctement
@Karthikeyan-Pandian vos modifications ont été effectuées correctement mais ne fonctionnent toujours pas.
Modifie le fichier build.gradle dans cordova-plugin-firebase (plugins\cordova-plugin-firebase\src\android)
dépendances {
compilez-moi. leolin:RaccourciBadger :1.1. 4@aar '
compiler 'com.google. firebase:firebase-crash :11.+'
compiler 'com.google. firebase:firebase-auth :11.+'
}
Et le fichier project.properties
cordova.gradle.include.1=cordova-plugin-firebase/android-build.gradle
cordova.system.library.2=com.google. gms:google-services :+
cordova.system.library.3=com.google. firebase:firebase-core :11.+
cordova.system.library.4=com.google. firebase:firebase-messages :11.+
cordova.system.library.5=com.google. firebase:firebase-crash :11.+
cordova.system.library.6=com.google. firebase:firebase-config :11.+
@Lifesoftware
As-tu supprimé la plateforme Android ?
Sinon, supprimez et ajoutez la plate-forme après avoir mis à jour le fichier build.gradle dans le dossier cordova-plugin-firebase et après l'ajout de la plate-forme, mettez à jour le fichier project.properties, puis créez et vérifiez une fois
Si cela ne fonctionne pas, faites-moi savoir que j'ai une autre solution que nous pouvons essayer avec cela.
@Karthikeyan-Pandian ça marche pour moi. Merci d'avoir donné la solution 🎉 🎉 🎉
Je peux le faire compiler avec 12.0.0
. Cependant, certaines bibliothèques peuvent se briser. Toujours à déterminer l'étendue des dégâts. (Modifier : Utilisez la version 11.8.0 ci-dessous, car de nombreuses bibliothèques tierces n'ont pas l'implémentation Android pour 12.0.0, mais cette implémentation facilitera la mise à niveau dans un proche avenir)
Mais c'est ce que j'ai fait,
gradle-wrapper.properties
, remplacez distributionUrl
par https\://services.gradle.org/distributions/gradle-4.1-all.zip
ext
défini dans android/build.gradle
ext {
googlePlayServicesVersion = '11.8.0'
compileSdkVersion = 27
buildToolsVersion = '27.0.3'
supportLibrariesVersion = '27.1.0'
}
// Force sub libs to use the compile sdk & build tools version
subprojects { subproject ->
afterEvaluate{
if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
}
}
}
}
app/build.gradle
, changé tous les compile
en implementation
, utilisé les variables d'objet ext définies par le projet dans android/build.gradle
(c'est- implementation "com.google.android.gms:play-services-gcm:$project.googlePlayServicesVersion"
dire android/build.gradle
, assurez-vous que vos dépendances sont les suivantesbuildscript {
repositories { ... }
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.google.gms:google-services:3.2.0'
}
}
Edit : le correctif fonctionne pour 12.0.0 (compile et exécute le projet avec succès). Cependant, notez ce qui précède concernant l'utilisation de 11.8 à la place.
Une solution simple consiste à trouver com.google.firebase dans tous les dossiers et à modifier
Après
compiler "com.google. firebase:firebase-core :+"
compiler "com.google. firebase:firebase-messaging :+"
compiler "com.google. firebase:firebase-crash :+"
compiler "com.google. firebase:firebase-config :+"
Avant
compiler "com.google. firebase:firebase-core :11.+"
compiler "com.google. firebase:firebase-messaging :11.+"
compiler "com.google. firebase:firebase-crash :11.+"
compiler "com.google. firebase:firebase-config :11.+"
Ce lien résout le même problème et je l'ai essayé, et cela fonctionne pour moi, vous pouvez le vérifier ici
À ce sujet : https://github.com/facebook/react-native/issues/18479#issuecomment -375170840
@pencilcheck Je suis presque sûr que vous avez une faute de frappe
Remplacer
if (details.requested.group == 'com.android.gms' ) {
avec
if (details.requested.group == 'com.google.android.gms' ) {
Mon approche consiste à analyser tous les projets Android et à mettre à jour la version des services Google Play directement sur chaque module build.gradle
Détail ici : https://medium.com/p/2fd245027832
Espérons que cela peut vous aider.
@nhancv Cela ne constitue pas un correctif. Un correctif est lorsque vous êtes en mesure d'utiliser 12.0.0 comme prévu.
Ce problème ne concerne pas le projet React Native. Ce projet n'inclut aucune dépendance gms/firebase, il peut donc être fermé.
Soulever un problème avec les bibliothèques qui utilisent des dépendances gms avec un +
. C'est généralement une mauvaise pratique d'utiliser des caractères génériques si vous voulez des builds reproductibles.
Comme solution de contournement pratique, ajoutez ceci à votre android/build.gradle
(similaire à la solution de @weihuali0509 mais plus complète)
subprojects {
ext {
playServicesVersion = '11.8.0'
}
project.configurations.all {
resolutionStrategy {
eachDependency { details ->
// Force dependencies to use the same version.
def versionSelector = details.requested
if (versionSelector.group == 'com.google.firebase'
|| versionSelector.group == 'com.google.android.gms') {
details.useVersion playServicesVersion
}
}
}
}
}
J'ai trouvé une solution temporaire.
Essayez de trouver tous vos packages avec gms inclus dans vos modules de nœud.
Faites ceci à votre android/build.gradle
allprojects {
repositories {
// Temp fix for com.google.android.gms.license
configurations.all {
resolutionStrategy {
// Put your gms packages here with 11.8.0 attached
force "com.google.android.gms:play-services-analytics:11.8.0"
force "com.google.android.gms:play-services-auth:11.8.0"
force "com.google.android.gms:play-services-gcm:11.8.0"
force "com.google.android.gms:play-services-location:11.8.0"
}
}
mavenLocal()
jcenter()
maven { url "https://maven.google.com" }
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
}
}
J'ai résolu le problème avec pour modifier cela à partir de "android/app/build.gradle" et j'ai également changé cela à partir duquel la bibliothèque créait des problèmes "node_modules\react-native-camera\androidbuild.gradle"
===>>> "com.google.android. gms:play-services-vision :11.+"
J'ai tout essayé depuis hier, de gradle aux scripts de nœud de post-installation, avec toutes les versions : que ce soit 11.6.0
11.8.0
12.0.0
et les versions des outils de construction Android 26 et 27 , absolument rien n'a fonctionné, il donne toujours le même message d'erreur Error: more than one library with package name 'com.google.android.gms.license'
La seule chose qui varie est le module à partir duquel cette erreur est crachée...
vous voudrez peut-être essayer ma solution (https://github.com/facebook/react-native/issues/18479#comment-375200874) je l'ai opérationnel. Besoin de quelques ajouts pour la commande assembleRelease, à part cela, cela fonctionne bien
J'ai essayé tout ce que vous avez suggéré depuis 2 heures @yangguang2009 mes fichiers gradle sont maintenant beaucoup plus propres maintenant ;) mais cela n'affectera pas du tout le résultat final
La seule chose qui n'a pas fonctionné pour moi est la suivante:
Dans gradle-wrapper.properties, remplacez distributionUrl par https\://services.gradle.org/distributions/gradle-4.1-all.zip
@btoueg Pouvez-vous publier des extraits de vos fichiers gradle ?
Je construis ReactNative à partir des sources, c'est pourquoi je ne peux pas facilement passer à la version 4.1
@yangtaufoo Voici ma racine build.gradle
:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'de.undercouch:gradle-download-task:3.1.2'
classpath 'com.google.gms:google-services:3.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
ext {
googlePlayServicesVersion = '12.0.0'
compileSdkVersion = 27
buildToolsVersion = '27.0.3'
supportLibrariesVersion = '27.1.0'
}
// Force sub libs to use the compile sdk & build tools version
subprojects { subproject ->
afterEvaluate{
if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
}
}
}
}
allprojects {
repositories {
mavenLocal()
jcenter()
maven {
url "https://maven.google.com"
}
maven {
url 'https://jitpack.io'
}
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
}
}
J'ai joué avec toutes sortes de googlePlayServicesVersion
, compileSdkVersion
, buildToolsVersion
, supportLibrariesVersion
Et mon application build.gradle
:
apply plugin: "com.android.application"
apply from: "../../node_modules/react-native/react.gradle"
apply from: "../../node_modules/react-native-sentry/sentry.gradle"
def enableProguardInReleaseBuilds = true
android {
compileSdkVersion "$project.compileSdkVersion"
buildToolsVersion "$project.buildToolsVersion"
}
configurations.all {
exclude group: 'com.facebook.react', module: 'react-native'
resolutionStrategy {
eachDependency { details ->
// Force dependencies to use the same version.
def requested = details.requested
if (requested.group.startsWith('com.google.android.gms')) {
details.useVersion "$project.googlePlayServicesVersion"
}
if (requested.group == 'com.google.firebase') {
details.useVersion "$project.googlePlayServicesVersion"
}
if (requested.group == 'com.android.support' && !requested.name.startsWith('multidex')) {
details.useVersion "$project.supportLibrariesVersion"
}
}
// fail eagerly on version conflict (includes transitive dependencies)
// e.g. multiple different versions of the same dependency (group and name are equal)
failOnVersionConflict()
// force certain versions of dependencies (including transitive)
// *append new forced modules:
force 'me.leolin:ShortcutBadger:1.1.10'
force 'com.android.support:multidex:1.0.3'
force 'com.facebook.fresco:fbcore:0.13.0'
force 'com.facebook.fresco:imagepipeline:0.13.0'
force 'com.squareup.okhttp3:okhttp:3.5.0'
force 'com.yqritc:android-scalablevideoview:1.0.3'
force 'com.google.code.gson:gson:2.3.1'
force 'com.google.zxing:core:3.2.1'
force 'com.squareup.okio:okio:1.13.0'
}
}
dependencies {
configurations.all {
exclude group: 'com.facebook.react', module: 'react-native'
}
compile fileTree(dir: "libs", include: ["*.jar"])
implementation "com.android.support:appcompat-v7:$project.supportLibrariesVersion"
implementation 'com.yqritc:android-scalablevideoview:1.0.4'
implementation 'com.amazonaws:aws-android-sdk-core:2.3.0'
implementation 'com.amazonaws:aws-android-sdk-cognito:2.3.0'
implementation 'com.amazonaws:aws-android-sdk-s3:2.3.0'
implementation 'com.google.zxing:core:3.3.0'
implementation 'com.facebook.fresco:animated-gif:0.13.0'
compile project(':react-native-video')
compile project(':react-native-fs')
compile project(':react-native-orientation')
compile project(':react-native-image-picker')
compile project(':reactdate')
compile project(':react-native-maps') // make use of $project.googlePlayServicesVersion
compile project(':react-native-push-notification')
compile project(':react-native-vector-icons')
compile project(':react-native-fbsdk')
compile project(':react-native-camera')
compile project(':react-native-blur')
compile project(':react-native-linear-gradient')
compile project(':react-native-fcm')
compile project(':react-native-sentry')
implementation "com.google.android.gms:play-services-gcm:$project.googlePlayServicesVersion"
implementation "com.google.android.gms:play-services-location:$project.googlePlayServicesVersion"
implementation "com.google.android.gms:play-services-vision:$project.googlePlayServicesVersion"
implementation 'com.android.support:multidex:1.0.3'
implementation "com.google.firebase:firebase-core:$project.googlePlayServicesVersion"
implementation "com.google.firebase:firebase-messaging:$project.googlePlayServicesVersion"
compile project(':ReactAndroid') // make sure to keep this dependency last in the list
}
apply plugin: 'com.google.gms.google-services'
Pour ceux qui sont toujours confrontés au problème, je vais essayer d'expliquer clairement comment le résoudre et ce qui se passe. Tout d'abord, si vous obtenez cette erreur, il y a de fortes chances que votre code ou un package npm inclus contienne les lignes
compile 'com.google.android.gms:play-services-XXXXXXX:+'
quelque part dans un fichier build.gradle
, où XXXXX
est l'un des services Google Play comme auth
ou location
. un bon exemple est react-native-fused-location .
Maintenant, pour forcer une version pour toutes les bibliothèques qui compilent vers la version +
vous avez besoin pour appliquer une version, vous le faites dans votre fichier racine android/build.gradle
en ajoutant la section configuration.all
dans l'exemple ci-dessous :
allprojects {
repositories {
mavenLocal()
jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
...
...
configurations.all {
resolutionStrategy {
force "com.google.android.gms:play-services-location:11.8.0"
}
}
}
}
Je suivrais également utiliseraient dans ce fichier, par exemple :
ext {
compileSdkVersion = 26
targetSdkVersion = 26
buildToolsVersion = "26.0.2"
supportLibVersion = "26.1.0"
googlePlayServicesVersion = "11.8.0"
androidMapsUtilsVersion = "0.5+" // <-- for react-native-map
}
VEUILLEZ NOTER - il existe divers services de jeu pour lesquels vous pouvez configurer une stratégie de résolution en fonction de la bibliothèque qui pose le problème, c'est- play-services-auth
dire
puis dans votre fichier android/app/build.gradle
, utilisez les variables rootProject, c'est-à-dire
android {
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
defaultConfig {
applicationId "com.driver"
minSdkVersion 16
targetSdkVersion rootProject.targetSdkVersion
googlePlayServicesVersion = rootProject.googlePlayServicesVersion
...
et assurez-vous que vos dépendances ne forcent pas la compilation de versions spécifiques des services google-play, et compilez la version appcompat à partir de votre rootProject. un exemple de ma config
dependencies {
compile project(':react-native-background-geolocation')
compile project(':react-native-background-fetch')
compile project(':react-native-maps')
compile project(':react-native-fused-location')
compile project(':react-native-image-picker')
compile fileTree(dir: "libs", include: ["*.jar"])
compile "com.facebook.react:react-native:+" // From node_modules
compile "com.android.support:appcompat-v7:$rootProject.supportLibVersion"
}
@btoueg, vous voudrez peut-être les changer dans votre build.gradle
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.google.gms:google-services:3.2.0'
Je poste mon message moyen sur ce problème. Vérifiez-le et faites-moi savoir s'il y a des problèmes!
https://medium.com/@chuckyong_3313/react -native-android-build-compilation-issue-with-google-play-api-for-android-v12-0-0-ccb2f1a0fb9c
Pour moi, onesignal est le seul module de nœud qui utilise les services Google Play dans mon projet, j'ai donc simplement modifié ce qui suit dans /node_modules/react-native-onesignal/android/build.gradle
:
compile 'com.google.android.gms:play-services-gcm:+'
compile 'com.google.android.gms:play-services-analytics:+'
compile 'com.google.android.gms:play-services-location:+'
à
compile 'com.google.android.gms:play-services-gcm:11.8.0'
compile 'com.google.android.gms:play-services-analytics:11.8.0'
compile 'com.google.android.gms:play-services-location:11.8.0'
vient de changer le +
en 11.8.0
et a exécuté le projet et cela a bien fonctionné. Je ne sais pas si c'est une bonne solution, mais c'est à coup sûr très court et simple. Vous devrez le faire pour tous vos modules utilisant les services Google Play. Ce n'est peut-être pas la meilleure solution si vous en avez beaucoup.
tellement de problèmes avec React-Native.
Je voulais juste utiliser l'appareil photo dans React-native, je n'ai pas pu le faire au cours des 2 derniers jours.
obtenir une erreur différente à chaque fois, maintenant une erreur "plus d'une lib".
Si quelqu'un a une solution de travail de reflex-native-camera, merci de la partager.
@mk48 Cette erreur vient de google, google a lancé 12.0.0 avec des erreurs. C'est tout le problème en ce moment
Merci @KoenvGinkel , j'arrêterai mon projet natif actuel pour les 2 prochains jours, je reprendrai après cela.
j'espère que cela sera résolu cette fois.
@mk48 suivez ceci, cela peut vous aider,
Modifiez-le à partir de "android/app/build.gradle" et modifiez également cela à partir duquel la bibliothèque créait des problèmes "node_modules\react-native-camera\androidbuild.gradle"
===>>> "com.google.android. gms:play-services-vision :11.+"
@yangguang2009 merci, toutes les informations m'ont été très précieuses
Je n'ai pas compris que je devais changer le chemin de classe jusqu'à https://github.com/facebook/react-native/issues/18479#issuecomment -375523567 et je ne savais même pas que vous pouviez désynchroniser la version du gradle- wrapper avec la version du classpath (ce qui rendait les choses assez floues)
Je trouve votre article de blog Medium complet et je vous en suis très reconnaissant.
Maintenant que je me suis débarrassé du problème gms.license
, il me reste cette erreur qui se produit après la compilation :
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:processProReleaseResources'.
> Failed to execute aapt
J'espère que ce sera plus simple à résoudre ;)
@btoueg Il existe un problème connu avec Build Tools 3 (https://github.com/facebook/react-native/issues/16906) provoquant l'échec d'une build pour la publication. Le correctif consiste à ajouter android.enableAapt2=false
à android/gradle.properties
comme solution de contournement temporaire.
Oui, je l'ai trouvé aussi : https://github.com/react-navigation/react-navigation/issues/3097#issuecomment -358351112
Merci
@Karthikeyan-Pandian @Lifesoftware
cordova.system.library.2=com.google. gms:google-services :11+
cordova.system.library.3=com.google.android. gms:play-services-tagmanager :11+
cordova.system.library.4=com.google. firebase:firebase-core :11+
cordova.system.library.5=com.google. firebase:firebase-messagerie :11+
cordova.system.library.6=com.google. firebase:firebase-crash :11+
cordova.system.library.7=com.google. firebase:firebase-config :11+
cordova.system.library.8=com.google.android. gms:play-services-analytics :11+
cordova.system.library.9=com.google.android. gms:play-services-auth :11+
cordova.system.library.10=com.google.android. gms:play-services-identity :11+
Après avoir modifié les propriétés du projet
j'ai ajouté la plate-forme
puis changer de build
dépendances {
compilez-moi. leolin:RaccourciBadger :1.1. 4@aar '
compiler 'com.google. firebase:firebase-crash :11.+'
compiler 'com.google. firebase:firebase-auth :11.+'
}
mais affiche toujours une erreur
Impossible de trouver une version correspondant à com.google. gms:google-services :11+.
Versions qui ne correspondent pas :
3.1.1
3.1.0
3.0.0
2.1.2
2.1.0
+ 42 de plus
Requis par:
projet :
Merci @muhammadmisbah , cela a résolu le problème de la caméra. Merci :)
Après avoir mis à jour mon gradle, tout semblait bien fonctionner.
peut-être que vous utilisez d'anciennes versions de gradle ?
Ma version actuelle est maintenant 4.6
https://gradle.org/install/
Après avoir mis à jour mon gradle, j'ai supprimé le dossier gradle dans mon dossier Android.
Je l'ai couru avec androidstudio, ça l'a corrigé.
@yangtaufoo Après avoir résolu l'erreur en suivant votre didacticiel moyen et mon succès de construction, mais après cela, mon application se ferme dès son ouverture... Existe-t-il une solution pour cela ??
@KoenvGinkel Cela ne m'a pas aidé :/
@yangtaufoo @Vijay-clustrex le même problème m'arrive. Une fois l'erreur résolue et la construction réussie, l'application se bloque instantanément à l'ouverture. Toute aide est très appréciée.
Pour ceux dont l'application plante, faites un "adb logcat" dans la console et démarrez l'application et recherchez les plantages fatals, les traces de pile, etc. Cela devrait vous donner un indice.
J'ai eu le même problème avec la venue en raison de react-native-push-notification
et firebase
utilisés ensemble. Voici ce que j'ai fait après de nombreuses heures à comprendre:
1) android/app/build.gradle
fixez-le à une version spécifique insetad de +
compile 'com.google.firebase:firebase-core:12.0.1'
2) android/build.gradle
ajoutez ce qui suit à allprojects
configurations.all {
resolutionStrategy {
force 'com.google.android.gms:play-services-gcm:12.0.1'
}
}
3) CD dans le dossier Android à partir du shell et exécutez le nettoyage
$> gradlew clean
react-native-push-notification ont fusionné leurs propriétés gradle aujourd'hui .
Firebase les prend déjà en charge.
@Vijay-clustrex @emilklindt Aura besoin de plus d'informations pour pouvoir aider. tous les journaux sont appréciés
L'utilisation de la dernière version "compile 'com.google. firebase:firebase-core :12.0.1'" a résolu le problème pour moi.
Comme suggéré par @nopedev , la solution pour moi était de forcer la résolution des dépendances spécifique à la version. Je rencontrais des problèmes avec react-native-device-info et react-native-background-geolocation (voir https://github.com/transistorsoft/react-native-background-geolocation/issues/375).
Vous trouverez ci-dessous la configuration qui a fini par le résoudre pour moi, qui n'est qu'une légère modification de ce que @nopedev a initialement commenté, en ajoutant quelques bibliothèques supplémentaires :
def googlePlayServicesVersion = '11.8.0'
configurations.all {
resolutionStrategy {
// react-native-admob
force "com.google.android.gms:play-services-ads:$googlePlayServicesVersion"
// react-native-maps
force "com.google.android.gms:play-services-base:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-maps:$googlePlayServicesVersion"
// react-native-onesignal
force "com.google.android.gms:play-services-gcm:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-analytics:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-location:$googlePlayServicesVersion"
// react-native-google-sign-in
force "com.google.android.gms:play-services-auth:$googlePlayServicesVersion"
// react-native-device-info
force "com.google.android.gms:play-services-basement:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-iid:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-iid-license:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-gcm-license:$googlePlayServicesVersion"
// react-native-background-geolocation
force "com.google.android.gms:play-services-basement-license:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-tasks:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-tasks-license:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-base-license:$googlePlayServicesVersion"
}
...
}
Cela semble être corrigé après que Google a déployé le correctif ( 12.0.1
) sur Play Services et Firebase.
Tous,
Bien que forcer les versions GPS/GMS à être inférieures à la v12 fonctionne (comme suggéré ci-dessus), je ne pense pas que ce soit une solution à long terme et vous ne pourrez éventuellement pas utiliser certaines bibliothèques qui restent à jour avec les versions GMS telles que comme nous-mêmes ( react-native-firebase
).
L'approche que je recommanderais serait de mettre à jour votre projet Android pour utiliser les derniers outils de compilation gradle et Android - la plupart des projets sont loin derrière la version à ce sujet.
Voici quelques instructions tirées de notre journal des modifications React Native Firebase v4 qui devraient vous aider à le faire :
En raison de certains changements importants dans la v12 des bibliothèques Android, vous devrez mettre à niveau votre version de Gradle au moins vers la v4.4 et apporter quelques autres modifications comme suit :
1) Dans android/gradle/wrapper/gradle-wrapper.properties
, mettez à jour l'URL gradle en gradle-4.4-all.zip
2) Dans android/build.gradle
vérifiez que vous avez spécifié google()
dans la section des référentiels buildScript :
buildscript {
repositories {
jcenter()
google() // <-- Check this line exists
...
}
3) Dans android/build.gradle
mettez 3.1.0
:
classpath 'com.android.tools.build:gradle:3.1.0'
4) Dans android/app/build.gradle
mettez compile
en implementation
, par exemple
implementation(project(':react-native-firebase')) {
transitive = false
}
5) Dans android/app/build.gradle
, mettez à jour toutes les dépendances firebase et gms vers 12.0.1
Dans un monde idéal, les modules RN sont tous tenus à jour sur les dépendances graduelles et autres ; mais dans le monde réel, la plupart pourraient ne jamais mettre à niveau leurs versions GMS/fichiers de construction gradle, ce n'est cependant pas la fin de la ligne. Vous pouvez corriger avec succès l'un des modules dont vous souhaitez modifier les versions / définitions de dépendances (par exemple, pour utiliser la nouvelle syntaxe gradle api/implementation/compileOnly) en utilisant le module patch-package npm.
C'est assez simple :
node_modules
et faites-les tous construire ensemble avec succèspatch-package modulename-1 modulename-2 etc
à la racine de votre projet et il créera un répertoire de correctifs dans votre projet (contient toutes les modifications que vous avez apportées dans node_modules pour chacun des packages que vous avez spécifiés dans le commander)post-install
sur votre package.json
et il appliquera automatiquement le correctif après chaque installation de npm/yarnLiens pour référence :
https://github.com/invertase/react-native-firebase/blob/master/android/build.gradle#L83
https://github.com/invertase/react-native-firebase/blob/master/tests/android/app/build.gradle#L75
Attendez, RN prend-il en charge le dernier gradle maintenant ? Je n'ai eu que des problèmes avec la v3.
Salut, il semble qu'il n'y ait eu aucune activité sur ce problème récemment. Le problème a-t-il été résolu ou nécessite-t-il toujours l'attention de la communauté ? Ce problème peut être fermé si aucune autre activité ne se produit. Vous pouvez également étiqueter ce problème comme « Pour discussion » ou « Bon premier numéro » et je le laisserai ouvert. Merci pour vos contributions.
Fermeture de ce problème après une période d'inactivité prolongée. Si ce problème est toujours présent dans la dernière version, n'hésitez pas à créer un nouveau problème avec des informations à jour.
Commentaire le plus utile
Cela a fonctionné pour moi. Modifier
/android/build.gradle
.(pas/android/app/build.gradle
)Vous devez vérifier quels modules gms sont requis pour votre projet. Vous pouvez trouver les modules gms requis dans chaque fichier
build.gradle
de chaque plugin natif qui utilise gms.Dans mon cas, je devais vérifier les 4 prochains plugins.
react-native-admob
,react-native-maps
,react-native-onesignal
,react-native-google-sign-in
. Les noms de module peuvent être différents selon le projet.ou, vous pouvez vérifier les noms de modules requis en exécutant la commande
gradlew app:dependencies
.(exécuté dans le répertoire Android)