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!
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.
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
}
}
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
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
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
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.
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.)
Essayez d'installer à nouveau les dépendances. Cela a fonctionné pour moi
1.) yarn/npm install
2.) yarn/npm start --reset-cache
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.
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.
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:
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).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
.
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...
J'ai essayé les solutions ci-dessus, mais en ajoutant ceci à AndroidManifest.xml semble résoudre ce problème.
Android:usesCleartextTraffic="true"
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
Dans mon cas, l'installation d'un nouveau périphérique virtuel a aidé. Maintenant, j'utilise 1 appareil par application.
Assurez-vous également que le wifi est activé dans votre émulateur
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.
react-native run-Android
.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.
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
Fermez le terminal nodejs et reconstruisez.
J'utilise un périphérique physique, dans mon cas, cela a résolu le problème:
lsof -i :8081
kill -9 PID
react-native
run-Android
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.
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
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.
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
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
Solution possible:
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.
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.
J'ai pu résoudre ce problème en supprimant node_modules et en exécutant à nouveau l'installation de npm
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!
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.