web-dev-qa-db-fra.com

Réagir incompatibilité de version native

Obtenir le message suivant lorsque je lance un nouveau projet puis lance l'émulateur x-code. "Mismatch React-Native Version" 

Assurez-vous d'avoir reconstruit le code natif ...

Est-ce que quelqu'un sait ce qui se passe ici et peut m'aider? 

Merci!

 enter image description here

101
Sam Rao

Voici ce que j'en ai fait:

Fermez tous les terminaux et relancez la construction.

Vous pouvez oublier de fermer le terminal nodejs d’un autre projet et ils ont installé une version différente de react. 

Ainsi, la récupération de code du serveur nodejs est en conflit avec le serveur natif.

170
Val

Si vous avez créé votre application rea-native à l'aide de create-react-native-app. Vous devriez avoir un app.json (expo). et un fichier package.json, vérifiez si les versions d’exposition correspondent et changez en conséquence. Par exemple, dans mon cas, le problème était que dans le fichier app.json, j’avais une version 25.0.0 pour l’attribut expo sdkVersion , j’ai changé cela en 23.0.0 et tout a fonctionné.

package.json:

"dependencies": {
    "expo": "^23.0.4",
    "react": "16.0.0",
    "react-native": "^0.50.4"
  }

app.json:

{
  "expo": {
    "sdkVersion": "23.0.0" // before was 25.0.0
  }
}
21
victoryoalli

Allez simplement dans votre Android/app/build.gradle et ajoutez ensuite à la section dependencies:

dependencies{
compile ("com.facebook.react:react-native:0.50.3") { force = true } 
}

/// la version native de react peut être trouvée dans package.json

15
kunal pal

il suffit de forcer la version native dans le fichier de niveaux de niveau de votre application Android, dans la section dependencies.

compile ("com.facebook.react:react-native:0.52.0") { force = true }

a travaillé pour moi

8
Shubham Goel

Dans votre fichier build.gradle, ajoutez ce qui suit

implementation ("com.facebook.react:react-native:0.51.0") {
    force = true;
}

remplacez 0.51.0 par la version dans votre package.json

6
Nitish Phanse

J'ai eu ce problème pendant très longtemps et aucune des solutions ci-dessus n'a aidé. J'étais en train de mettre à niveau le logiciel natif dans un projet create-react-native-app jusqu'à ce que je découvre que toutes les versions d'Expo ne prennent pas en charge le dernier logiciel React Native. 

Vous trouverez cette page liée dans la documentation indiquant quelles combinaisons de versions de React Native, React et Expo sont officiellement prises en charge:

Source: https://github.com/react-community/create-react-native-app/blob/master/VERSIONS.md

La modification des fichiers app.json et package.json pour correspondre aux versions correspondantes et l'exécution de npm install ont tout remis en ordre.

5
Yatit Thakker

Je n'avais jamais vu cette erreur auparavant, mais chaque fois que je ne parviens pas à faire bien fonctionner Xcode et React-Native, je fais deux choses. Vérifiez la version de Xcode sur laquelle je travaille. S'il doit être mis à jour, je le mets à jour. Ensuite, le gardien et la cache sont le deuxième endroit où je vais. Je n'utilise pas la commande reset cache. Il dit toujours que je dois vérifier le cache, alors je l'ignore (vous pouvez le faire, je m'embrouille). J'utilise rm -rf $ TMPDIR/react- * pour me débarrasser de toutes les versions mises en cache. Si cela ne fonctionne pas, j'essaie de créer l'application dans Xcode, puis de m'en servir à partir de là, pour la créer avec run-ios réactif. Avec ce message d'erreur, il semble que vous pourriez commencer par essayer de le construire avec Xcode. J'espère que cela vous aidera ... faites-moi savoir vos progrès. Bonne chance! (En outre, vous pouvez mettre à jour la RN 0.51 en tant que nouvelle tentative de synchronisation de vos versions.)

5
Jared Nelson

Essayez d'installer à nouveau les dépendances. Cela a fonctionné pour moi 

1.) yarn/npm install
2.) yarn/npm start --reset-cache 

4
Aditi

Pour les développeurs Android qui ne pouvaient pas le réparer en fermant et reconstruisant simplement, désinstallez manuellement l'application sur l'émulateur/le périphérique.

3
Nadun Liyanage

Pour moi, cela était dû à la version react-native de la section dependency du fichier package.json. C'était:

"dependencies": {
"expo": "^27.0.1",
"react": "16.3.1",
"react-native": "~0.55.0"
}

Je l'ai chaged à:

"dependencies": {
"expo": "^27.0.1",
"react": "16.3.1",
"react-native": "0.52.0"
}

Maintenant cela fonctionne bien.

2

Si vous exécutez votre application React Native via Expo, la mise à niveau de React Native est susceptible de provoquer cette erreur (comme indiqué à https://github.com/expo/expo/issues/923 ).

Si tel est votre scénario, vos options sont les suivantes:

  1. Bump Expo (qui est répertorié dans votre package.json) vers une version compatible avec votre version de React Native (si une existe, ce qui pourrait ne pas être le cas - à en juger par le problème lié, je pense que le support de l'Expo traîne derrière React Versions natives).
  2. Annulez vos modifications, supprimez et réinstallez vos modules Node, Eject from Expo, puis (après avoir vérifié que vous pouvez toujours exécuter votre application après éjection), essayez à nouveau votre mise à niveau.
2
Mark Amery

Pour les autres avec le même problème sur iOS avec CocoaPods:

J'ai essayé toutes les solutions ci-dessus, sans succès. Mon projet contient des packages avec des dépendances natives, et certains des modules de pod nécessaires sont en cours d'installation. Le problème était que React était spécifié dans mon fichier Podfile, mais le pod React n'était pas automatiquement mis à niveau à l'aide de react-native-git-upgrade.

Le correctif consiste à mettre à niveau tous les pods installés en exécutant cd ios && pod install.

1
brkn

J'ai également eu ce problème en utilisant Expo et iOS Simulator. Ce qui a fonctionné pour moi a été d’effacer le simulateur dans Hardware > Erase All Content and Settings...

1
catico

J'ai essayé les solutions ci-dessus, mais en ajoutant ceci à AndroidManifest.xml semble résoudre ce problème.

  Android:usesCleartextTraffic="true"
1
ketimaBU

le correctif que nous avons fait était de nous assurer que les variables Android_HOME et PATH étaient configurées avant la construction. 

Tout d’abord, lancez les deux commandes ci-dessous puis construisez l’application pour le périphérique.

export Android_HOME =/Utilisateurs/nom d'utilisateur/MyFiles/applications/androidsdk export PATH = $ PATH: $ Android_HOME/tools: $ Android_HOME/platform-tools

1
Saif Kamaal

Dans mon cas, l'installation d'un nouveau périphérique virtuel a aidé. Maintenant, j'utilise 1 appareil par application.

0
Luminita Balas

Assurez-vous également que le wifi est activé dans votre émulateur 

0
G. Adnane

J'ai eu le même problème lors de la construction de mon application native pour Android et j'ai fait ce qui suit pour moi. 

"JavaScript version 0.50.1" dans la console des erreurs est la version native de votre fichier package.json. Assurez-vous qu'il s'agit de la même version que "Native version 0.50.0" dans la console d'erreur. 

  1. J'ai mis à jour la version native de reay en "Native Version 0.50.0", comme indiqué dans la console des erreurs.
  2. Reconstruisez l'application react-native run-Android.
0
Anand Yadav

Essayez de changer la version de votre react-native spécifiée dans votre package.json (sous dépendances - react-native) par la même chose que 'Version native' indiquée dans le message d'erreur. Puis lancez 'npm install' à nouveau.

0
Pnar Sbi Wer

Cela se produit parfois lorsque vous essayez de fonctionner sans fermer le serveur de noeud sur lequel l'application précédente était en cours d'exécution. Essayez donc de redémarrer React. Pour ce faire, exécutez simplement les commandes suivantes:

1. To kill current processes
killall node -9 

2. To Start React  Native
react-native start 

3. Then Run Android
react-native run-Android
0
civani mahida

Fermez le terminal nodejs et reconstruisez.

0
Ashu

J'utilise un périphérique physique, dans mon cas, cela a résolu le problème:

  1. Désinstallation de l'application
  2. lsof -i :8081
  3. kill -9 PID
  4. Reconstruire l'application react-nativerun-Android
0
ade_anugerah

Utilisateurs de l’Expo - assurez-vous que votre version de app.json sdk et votre version de package.json expo sont compatibles, le cas échéant.

0
cherankrish

Opene projectdir/Android/app/build.gradle

Essayer: 

compile ("com.facebook.react: react-native: 0.51.0") {force = true}

Au lieu de Compiler "com.facebook.react: react-native: 0.51.0" {force = true}

Réf .: Lien

0
Khurshid Ansari

Dans mon cas, mon périphérique physique Android ne se connecte pas au serveur js exécuté sur ma machine de développement. Je dois donc définir manuellement l'hôte et le port du serveur de débogage sur mon appareil Android. 

0
Gamz Rs

Dans mon cas (pas en utilisant expo & Android build)

package.json

"dependencies": {
    "react": "16.3.1",
    "react-native": "0.55.2"
}

Et app.json 

{
  "sdkVersion": "27"
}

résolu le problème

0
Ajitsen

J'essayais de créer et d'exécuter une application native React à partir de WebStorm et j'ai rencontré ce problème. La solution simple pour moi était:

watchman watch-del-all

Sur macOS, si watchman n'est pas déjà installé, installez-le à l'aide de Homebrew :

brew install watchman
0
friederbluemle

Solution possible:

  1. Supprimer le package-lock.json
  2. Exécuter: watchman watch-del-all && rm -rf $TMPDIR/react-* && rm -rf $TMPDIR/haste-map-react-native-packager-* && rm -rf node_modules/&& npm install

Si le problème persiste, essayez d’exécuter le projet directement depuis leXcode

Cela a fonctionné pour moi.

0
Alejo

Pour mon cas, je suis confronté à cela sur iOS, et j'ai essayé de réinitialiser et d'effacer tout le cache en utilisant la commande ci-dessous, mais j'ai échoué aussi, malgré de nombreux commentaires disant que la cause principale est qu'il réagissait de façon accidentelle, j'ai redémarré mon mac et le problème est toujours resté.

watchman watch-del-all && rm -rf node_modules/ && yarn cache clean && yarn install && yarn start --reset-cache

La solution est de supprimer le dossier de construction @ /ios/build, puis d'exécuter react-native run-ios résolu.

0
Isaac

J'ai pu résoudre ce problème en supprimant node_modules et en exécutant à nouveau l'installation de npm

0
Dazzle

Ce n'est pas une solution, mais dans mon cas, plusieurs applications RN étaient installées sur mon appareil et je tentais inconsciemment de «recharger» depuis la mauvaise application. (Je développe deux applications simultanément pour le moment) Alors assurez-vous que vous êtes dans la bonne application!

0
Friendly-Robot

Cela serait particulièrement applicable pour Android Studio 3.2 ou les utilisateurs plus récents, car cela ne semblait pas se produire avant la mise à niveau.

Si vous n'avez pas changé la version de React Native dans votre configuration (package.json, build.gradle), le problème de disparité de version pourrait provenir de modifications non détectées dans les fichiers de projet après l'extraction d'une autre validation dans git. Pour surmonter cela, assurez-vous de:

  • Nettoyez la construction: Build > Clean Project

  • Projet de synchronisation avec les fichiers Gradle: à côté du bouton Stop dans la barre de navigation

  • Make Project: premier bouton dans la barre de navigation avec une icône en forme de marteau

  • Et enfin, l'application Run/Debug

Cela permettrait également de surmonter l'erreur Session 'app': Error Installing APK qui pourrait survenir en raison de l'exécution instantanée une fois l'application désinstallée du périphérique.

0
Siavas