J'ai créé un nouveau projet en utilisant
react-native init Wevaha
, après cela, je l'exécuter correctement, puis j'ai modifié l'exemple d'application en fonction de mon exigence à nouveau exécutez-le fonctionne correctement, mais la prochaine fois, alors que l'exécution de l'application, je reçois l'erreur comme' Application Wevaha has not been registered.This is either due to a require() error during intialization or failure to call
AppRegistry.registerComponent '
Il est probable qu'un autre serveur de packageur natif React s'exécute déjà pour une autre application ou que le nom de l'application dans AppDelegate.m et votre index.js ne soient pas identiques.
Essayez de fermer toutes les fenêtres du terminal, vérifiez une nouvelle fois la valeur de moduleName
et réexécutez le projet.
Pour nous, le problème était que le nom de l'application enregistrée ne correspond pas au dossier racine. Donc, si votre dossier racine est /ChatApp
, enregistrez votre application comme suit:
AppRegistry.registerComponent('ChatApp', () => App);
Pour préciser ce que dit oblador, j’ai toujours ce problème après avoir fermé toutes les fenêtres du terminal et tué tous les autres processus React Native. Ce qui m'est arrivé est que la valeur de moduleName
dans AppDelegate.m
(à la racine du projet XCode) était incorrecte. J'utilise une version de Snowflake de Barton Hammond et j'essayais de le renommer «flocon de neige» en mon propre nom.
Dans mon cas, je regarde le numéro de port du conditionneur dans lequel il écoute . C'est le résultat de votre appel npm start
dans le répertoire de votre projet racine.
┌────────────────────────────────────────────── │ Exécution du conditionneur sur le port 8081. │ │ │ │ Laissez cet outil de conditionnement fonctionner pendant que vous développez des projets JS. Sentez-vous │ │ libre de fermer cet onglet et d’exécuter votre propre instance d’emballeur si vous │ préfère. │ │ │ https://github.com/facebook/react-native │ │ │ └─────────────────────────────────────────────────
Ensuite, je vérifie quelle application écoute sur ce port via
lsof -i :8081
Résultat:
COMMAND PID UTILISATEUR TYPE FD TYPE DISPOSITIF TAILLE/OFF NOM NOM AwesomePr 8131 haxpor 9u IPv6 0x372bdab8e928e839 0t0 TCP hôte local: 56484-> hôte local: sunproxyadmin (SYN_SENT)
Maintenant, prenez ce nombre PID
et forcez-le à le tuer via
kill -9 8131
Exécutez à nouveau votre conditionneur avec la réinitialisation du cache via npm start -- --reset-cache
, tout devrait bien se passer maintenant.
FYI:
réagir: 15.4.2
, réagir-native: 0.41.2
Dans mon cas, cela est dû à la sensibilité à la casse du nom de l'application dans index.ios.js
.
Cela fonctionne après que j'ai changé de
AppRegistry.registerComponent('AppleReactNative', () => App)
à
AppRegistry.registerComponent('applereactnative', () => App)
Tuer tous les autres processus de nœud a fonctionné pour moi Ie
ps -ef | grep node
pkill -f node
tuer les processus
Si vous rencontrez ce problème lors de l'exécution sur un périphérique ou un émulateur Android,
en dehors de index.js Vous devez également vous assurer que le nom de l'application doit être identique dans le fichier ci-dessous index.Android.bundle
:
que vous pouvez trouver sur ce chemin: ~Android/app/src/main/assets/index.Android.bundle
Recherchez l'ancien nom de l'application et remplacez-le par le nom actuel.
cela a fonctionné pour moi, espérons que cela aidera les autres aussi.