4 votes

Toutes les bibliothèques firebase doivent être soit supérieures ou inférieures à 14.0.0 (react-native-maps & react-native-firebase)

J'essaie d'ajouter react-native-maps dans mon application de démarrage react-native-firebase. Je n'ai pas eu l'erreur jusqu'à ce que j'essaie d'ajouter react-native-maps. Voici le code après avoir suivi exactement leurs instructions. J'ai essayé de changer la dépendance des cartes à 15.0.1 et de supprimer les services de lecture en double, mais cela n'a rien résolu. Toute aide et tout commentaire sont les bienvenus ! Cela fait maintenant plus d'une semaine que je cherche des réponses à ce problème.

dependencies {
    implementation project(':react-native-vector-icons')
    // react-native-google-signin
    implementation(project(':react-native-google-signin')) {
        exclude group: "com.google.android.gms"
    }
    implementation 'com.google.android.gms:play-services-auth:15.0.0'

    // react-native-fbsdk
    implementation project(':react-native-fbsdk')

    implementation(project(':react-native-firebase')) {
        transitive = false
    }

    // RNFirebase required dependencies
    implementation "com.google.firebase:firebase-core:15.0.2"
    implementation "com.google.android.gms:play-services-base:15.0.0"

    // RNFirebase optional dependencies
    implementation "com.google.firebase:firebase-auth:15.1.0"
    implementation "com.google.firebase:firebase-database:15.0.0"
    implementation "com.google.firebase:firebase-firestore:16.0.0"

    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.android.support:appcompat-v7:27.0.2"
    implementation "com.facebook.react:react-native:+"  // From node_modules

    // react-native-maps required dependencies
    implementation(project(':react-native-maps')){
        exclude group: 'com.google.android.gms', module: 'play-services-base'
        exclude group: 'com.google.android.gms', module: 'play-services-maps'
    }
    implementation 'com.google.android.gms:play-services-base:10.0.1'
    implementation 'com.google.android.gms:play-services-maps:10.0.1'
}

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

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

2voto

basudz Points 437

Mise à jour après avoir testé et trouvé la solution adéquate..

Ok, pour l'instant je n'utilise Firebase que pour la messagerie en nuage, donc ma solution est probablement beaucoup plus simple que la vôtre. En gros, j'ai commencé par ajouter firebase-core et il s'est plaint que play-services-measurement-base était demandé plusieurs fois à différentes versions. J'ai donc exclu ce dernier de la dépendance de firebase-core. ET l'a ajouté indépendamment en forçant la version à laquelle il a été demandé. Il s'est ensuite plaint de firebase-analytics, que j'ai suivi de la même manière que ci-dessus, mais il m'a ensuite donné la première erreur à nouveau pour play-services-measurement-base. J'ai dû l'exclure de firebase-analytics pour pouvoir continuer.

Ensuite, j'ai ajouté la dépendance firebase-messaging et j'ai obtenu la même erreur pour la dépendance firebase-iid, pour laquelle j'ai suivi le modèle précédent.

Vous avez beaucoup plus de dépendances firebase donc vous devrez probablement passer par une par une comme ceci.

Voici mon bloc de dépendances.

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    implementation "com.facebook.react:react-native:+"
    implementation project(':react-native-device-info')
    implementation project(':react-native-config')
    implementation project(':react-native-image-picker')
    implementation project(':react-native-sentry')
    implementation project(':react-native-vector-icons')
    implementation project(':react-native-maps')
    implementation project(':react-native-firebase')
    implementation "com.google.android.gms:play-services-base:${rootProject.ext.googlePlayServicesVersion}"
    implementation ("com.google.android.gms:play-services-measurement-base:15.0.4") {
        force = true
    }
    implementation ("com.google.firebase:firebase-analytics:16.0.0") {
        force = true
        exclude module: 'play-services-measurement-base'
        exclude module: 'firebase-analytics-impl'
    }
    implementation ("com.google.firebase:firebase-analytics-impl:16.0.0") {
        force = true
        exclude module: 'play-services-measurement-base'
    }
    implementation ("com.google.firebase:firebase-iid:16.0.0") {
        force = true
    }

    implementation ('com.google.firebase:firebase-core:16.0.0'){
        exclude module: 'play-services-measurement-base'
        exclude module: "firebase-analytics"
        exclude module: "firebase-analytics-impl"
    }
    implementation ('com.google.firebase:firebase-messaging:17.0.0'){
        exclude module: 'firebase-iid'
    }
}

J'ai également configuré les propriétés du projet pour react-native-maps à utiliser comme mentionné dans leur documention Android ici. https://github.com/react-community/react-native-maps/blob/master/docs/installation.md#Android

Oh, je devrais également mentionner que dans mon fichier de construction gradle au niveau du projet, mes dépendances buildscript avaient besoin d'être mises à jour.

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'
        classpath 'com.google.gms:google-services:4.0.1'
    }
}

J'espère que cela vous aidera ! Bonne chance

1voto

Brian Kopp Points 61

J'ai enfin trouvé la solution, et je me sens vraiment stupide d'avoir mis autant de temps à la trouver. Tout ce que j'avais à faire était de changer le play-services-base y play-services-map versions to 15.0.1. Je devais aussi nettoyer le build après l'avoir modifié.

Merci de t'être penché sur la question, ta solution me dépassait largement. Je ne suis pas aussi familier avec Android comme je devrais l'être. J'essaie de me familiariser avec elle, c'est une saloperie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X