web-dev-qa-db-fra.com

Erreur lors de l'utilisation de Maps dans react native

Je souhaite utiliser des cartes dans mon application native Rea. J'ai donc installé react-native-maps à partir de airbnb, mais lorsque j'essaie de créer les applications, l'erreur "Could not find method compileOnly() for arguments [com.facebook.react:react-native:+] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler." s'affiche toujours, j'ai déjà configuré le dégradé de construction, le dégradé de réglage et MainApllication. Quelqu'un peut-il m'aider ici? My Build.Gradle  

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'
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.Android.support:appcompat-v7:23.0.1"
    compile "com.facebook.react:react-native:+"  // From node_modules
}

My Setting.Gradle

rootProject.name = 'MapDemo'
include ':react-native-maps'
project(':react-native-maps').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-maps/lib/Android')
include ':app'

Mon MainApplication.Java

import com.airbnb.Android.react.maps.MapsPackage;
 @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          new MainReactPackage(),
           new MapsPackage()
      );
    }

J'ai fait face à un problème similaire et trouvé la solution de ici :

Naviguez vers node_modules/react-native-maps/lib/Android/build.gradle puis Changez compileOnly en provided et implementation en compile.

J'espère que ça aide.

5
Sarjit Delivala

Changer un fichier dans le module tiers que vous utilisez n'est probablement pas la meilleure solution à la plupart des problèmes. Il semble que cette erreur soit due au fait que le module a été mis à niveau pour utiliser gradle 3, ce qui est incompatible avec la version de gradle 2 utilisée par défaut dans react native. Il existe des étapes utiles pour effectuer la mise à niveau ici: https://github.com/react-native-community/react-native-camera/issues/1490

0
Jules