web-dev-qa-db-fra.com

Conflit de version entre gms: play-services-vision et firebase

J'ai installé à la fois react-native-firebase et react-native-camera. La caméra fonctionnait bien lorsque play-services -vision était bloqué à 12.0.1, mais je viens de rencontrer cette erreur (Erreur de mise à jour de la propriété googleVisionBarcodeDetectorEnable) https://github.com/react-native-community/react- native-camera/issues/1844 qui nécessite une mise à niveau vers 15.0.2.

Il semble y avoir des conflits entre les services Google Play et Firebase lorsque play-services-vision est modifié jusqu'à 15.0.2 à partir de 12.0.1:

Dependency failing: com.google.Android.gms:play-services-flags:15.0.1 -> com.google.Android.gms:play-services-basement@[
  15.0.1], but play-services-basement version was 16.0.1.

  The following dependencies are project dependencies that are direct or have transitive dependencies that lead to the art
  ifact with the issue.
  -- Project 'app' depends onto com.google.firebase:[email protected]
  -- Project 'app' depends onto com.google.Android.gms:[email protected]
  -- Project 'app' depends onto com.google.firebase:[email protected]
  -- Project 'app' depends onto com.google.Android.gms:[email protected]

J'ai essayé com.google.Android.gms:[email protected] mais cela m'a donné l'erreur exceed 64k methods. Augmenter jusqu'à 17.0.2 provoquerait un conflit de version de com.google.Android.gms:play-services-basement

Toute personne utilisant à la fois réagit-native-firebase et caméra réactif-native? Pouvez-vous me dire comment résoudre ce problème de conflit de version?

Voici les dépendances dans Android/app/build.gradle

dependencies {

    implementation (project(':react-native-camera')) {
      exclude group: "com.google.Android.gms"
      implementation "com.Android.support:exifinterface:${rootProject.ext.supportLibVersion}"
      implementation ('com.google.Android.gms:play-services-vision:12.0.1') {
        force = true
      }
    }
    implementation project(':react-native-gesture-handler')
    implementation project(':react-native-webview')
    implementation project(':react-native-fast-image')
    implementation project(':react-native-google-signin')
    implementation project(':react-native-firebase')
    implementation 'com.google.firebase:firebase-core:16.0.6'
    implementation ('com.google.Android.gms:play-services-base:16.0.1')
    implementation 'com.google.firebase:firebase-messaging:17.3.4'
    implementation('com.crashlytics.sdk.Android:crashlytics:2.9.5@aar') {
        transitive = true
    }
    implementation(project(':react-native-google-signin')) {
        exclude group: "com.google.Android.gms" // very important
    }
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "com.Android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    implementation 'com.facebook.react:react-native:+'
    implementation project(':react-native-sqlite-storage')
    implementation 'me.leolin:ShortcutBadger:1.1.21@aar'
    implementation 'com.facebook.fresco:animated-gif:1.10.0'
}

Ext dans Android/build.gradle

ext {
    buildToolsVersion = "28.0.3"
    minSdkVersion = 19
    compileSdkVersion = 28
    targetSdkVersion = 28
    supportLibVersion = "27.1.1"
}

Paquet:

"react-native-camera": "^1.6.4",
"react-native-firebase": "^5.1.1",
10
RedGiant

Vous devez mettre à jour la version de gms: play-services-vision .implementation 'com.google.Android.gms:play-services-vision:17.0.2'

6
Varun

Vous devez activer MultiDex parce que: 

nombre total de méthodes pouvant être référencées dans un seul fichier DEX fichier à 65 536

et en activant multidex, le compilateur mettra des méthodes/fonctions supplémentaires dans un autre fichier dex.

alors faites ces étapes:

1- Ajouter MultiDex à build.gradle (fichier du module):

implementation 'com.Android.support:multidex:1.0.3'

2 -Clen & Build le projet

3- Ajoutez multiDexEnabled = true au même buil.gradle (module), à ​​l'intérieur 

      Android {  
       .... 
         defaultConfig {
      ...
      multiDexEnabled true
     ...
      } 
     } 

activer MultiDex

4- Ajoutez la classe d'application à votre projet et remplacez la classe d'application qui l'étend de MultiDexApplication au lieu de Application, par exemple: 

 Java:   public class MyMultiDexApplication extends MultiDexApplication { ... }
Kotlin :  class MyMultiDexApplication : MultiDexApplication() { override fun onCreate() {
    super.onCreate() } }

5- Ajoutez votre nom de classe d'application au fichier AndroidManifest.xml dans la balise d'application:

<application
        Android:name=".MyMultiDexApplication "
        Android:icon="@mipmap/ic_logo"
        Android:label="@string/app_name"
        >

6-Ajouter les dépendances dont vous avez besoin comme:

com.google.Android.gms:[email protected]

construire

7 - Construire à nouveau et fait

Référence Google pour plus d'informations: entrez la description du lien ici

0
Hamed Jaliliani

Ma solution facile pour éviter cela lors de l'importation de modules est 

1) npm install 2) run-Android/run-ios 3) Je reçois le même message ou parfois aucun message 4) Je vais à node_modules/react-native-Component-name et trouve le Fichier Android/build.gradle, je modifie compileSdkVersion et buildToolsVersion en ma version (dernière) et remplace toutes les dépendances par un plus.

com.google.Android.gms:play-services-vision:17.0.2 => com.google.Android.gms:play-services-vision:+ Ainsi, le module utilise toujours les dernières bibliothèques disponibles

0
ValdaXD