Je reçois cette erreur sur le simulateur Android:
Incompatibilité de la version native de React: Version Javascript: 0.58.5 Version native: 0.59.5
J'ai mis à jour React Native, les modules, le studio Android et à peu près tout ce que je pouvais. Tout fonctionne bien sur iOS, cela ne se produit que sur Android. La construction est réussie
Package.json
buildscript {
ext {
buildToolsVersion = "28.0.3"
minSdkVersion = 16
compileSdkVersion = 28
targetSdkVersion = 28
supportLibVersion = "28.0.0"
googlePlayServicesVersion = "15.0.1"
androidMapsUtilsVersion = "0.5+"
}
repositories {
google()
//mavenLocal()
jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
classpath 'com.google.gms:google-services:4.2.0'
}
}
allprojects {
repositories {
mavenLocal()
google()
jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
}
}
/*
task wrapper(type: Wrapper) {
gradleVersion = '4.7'
distributionUrl = distributionUrl.replace("bin", "all")
}*/
dependencies {
implementation project(':react-native-firebase')
implementation project(':react-native-gesture-handler')
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
implementation "com.facebook.react:react-native:+" // From node_modules
implementation project(':react-native-linear-gradient')
implementation project(':react-native-maps')
implementation "com.google.android.gms:play-services-base:16.0.1"
implementation project(':@react-native-community_async-storage')
implementation ("com.google.firebase:firebase-core:16.0.7") {
exclude group: 'com.google.android.gms'
}
implementation ("com.google.firebase:firebase-auth:16.1.0") {
exclude group: 'com.google.android.gms'
}
implementation ("com.google.firebase:firebase-database:16.0.6") {
exclude group: 'com.google.android.gms'
}
}
Build.gradle
{
"name": "MyProject",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"@react-native-community/async-storage": "^1.3.3",
"latlon-geohash": "^1.1.0",
"react": "16.8.3",
"react-native": "0.59.5",
"react-native-firebase": "^5.2.3",
"react-native-gesture-handler": "^1.0.16",
"react-native-keyboard-aware-scroll-view": "^0.8.0",
"react-native-linear-gradient": "^2.5.3",
"react-native-maps": "^0.24.2",
"react-native-vector-icons": "^6.4.2",
"react-navigation": "^3.3.2",
"react-redux": "^6.0.1",
"redux": "^4.0.1"
},
"devDependencies": {
"babel-core": "^7.0.0-bridge.0",
"babel-jest": "24.1.0",
"jest": "24.1.0",
"metro-react-native-babel-preset": "0.52.0",
"react-test-renderer": "16.6.3"
},
"jest": {
"preset": "react-native"
}
}
J'ai essayé de fermer tous les terminaux, installation de fil, création d'un nouvel appareil Android. Je suppose que cela a à voir avec la version réelle de React Native dans Package.json, mais c'est le 0.59.5 et quand j'ai cherché dans tout le projet, je ne trouve aucune référence à 0.58.5 nulle part.
Merci Luc
5 Réponses :
Assurez-vous que vous avez des versions RN dans package.json comme dans android / app / build.gradle , cela devrait ressembler à:
dans package.json
"react-native": "0.59.5",
et dans android/app/build.gradle
implémentation ("com.facebook.react: react-native: 0.59.5") {force = true
}
Modifier: Pouvez-vous également vérifier que le conditionneur et l'émulateur / périphérique sont sur le même réseau et que le bundle JS est récupéré à partir des bons emplacements? Il semble que votre application ne soit pas mise à jour pendant la construction, elle est bloquée dans l'ancien code.
J'espère que cela vous aidera. Bon codage!
Pouvez-vous vous assurer que le module de nœud React Native que vous utilisez a la bonne version dans son package.json?
J'ai regardé dans le package.json à l'intérieur du module de nœud React Native et il semble être correct: {"name": "react-native", "version": "0.59.5",
J'ai ajouté une section d'édition dans la réponse. Vérifiez si cela aide.
@SurajMalviya Comment vérifiez-vous si le packager et l'émulateur sont dans le même réseau? Et le bundle JS est récupéré au bon endroit?
J'ai résolu le problème avec l'aide du forum github. Cette erreur a été causée dans mon cas en ayant Android 9 dans le simulateur. L'installation d'un nouvel appareil avec la version 8 d'Android a résolu le problème.
Une solution similaire, la création d'un nouvel appareil avec une version plus récente recommandée par l'outil de l'appareil Android a également fonctionné pour moi.
@OsoGrizz Pouvez-vous préciser quel appareil et quelle version vous utilisez? J'ai essayé d'utiliser l'API Pixel2 29 avec Android 9+ (JS 0.58.5, NV 0.59.5) et son erreur de non-concordance persiste. Je suis donc toujours obligé d'utiliser Simulator Android 8.1, où cela fonctionne bien.
Je ne peux plus être sûr de la configuration que j'utilisais auparavant, mais j'utilise maintenant; API Pixel 3 XL 28 Android 9.0 (API Google), natif de réaction: 0,59,8
@CosmicSeizure face à des problèmes similaires, je suis donc curieux: qu'entendez-vous par API 29 / Android 9+? En termes de système d'exploitation pour un seul appareil, l'API 29 signifie Android 10.0 et Android 9.0 équivaudrait à l'API 28, non?
Essayez de suivre:
package.json
googlePlayServicesVersion = "15.0.1" androidMapsUtilsVersion = "0.5+"
build.gradle:
"react": "16.8.6", "react-native": "0.60.4", "react-native-maps": "0.25.0",
Fermez tous les terminaux et IDE et relancez-les. Cela fonctionnera
Il me restait workdir / android / app / src / main / assets / index.android.bundle de la version précédente d'une autre branche où j'utilisais l'ancien RN.
Exécution de bundle react-native --platform android --dev true --entry-file index.js --bundle-output android / app / src / main / assets / index.android.bundle --assets -dest android / app / src / main / res l'a corrigé pour moi.
pouvez-vous essayer de supprimer le dossier
node_moduleset les fichierspackage-lock.jsonavant d'exécuteryarn install?fermez votre terminal et exécutez à nouveau. ça marche.
fermez simplement l'application sur l'émulateur et réexécutez-la depuis expo ui.
stackoverflow.com/questions/47763824/…
@kenmistry si je supprime le dossier node_modules, devrai-je réinstaller à nouveau tous les modules? Je veux dire toute la configuration lors de la première installation d'un package?
@CosmicSeizure aucune autre configuration requise, je crois. Il recrée simplement le dossier node-modules.