Réagir Indigènes: l'Application n'a pas été enregistré d'erreur
Je suis actuellement à la Réaction Natif de tutoriels. J'ai commencé avec le tutoriel d'initiation, où j'ai fait une nouvelle réagir natif du projet et ont réussi à exécuter le projet sur mon appareil.
J'ai alors commencé à le Accessoires tutoriel, j'ai copié l'extrait de code et a essayé de courir à nouveau le projet et a eu le message d'erreur suivant afficher sur mon écran:
- Pouvez-vous partager votre code?
Vous devez vous connecter pour publier un commentaire.
Je suppose que c'est une erreur causée par ne correspond pas à un nom de projet et de votre composant enregistré.
Vous avez inited projet avec un nom, c'est à dire
react-native init AwesomeApp
Mais dans votre index.ios.js fichier vous inscrire d'autres composants
AppRegistry.registerComponent('Bananas', () => Bananas);
Quand il doit être
AppRegistry.registerComponent('AwesomeApp', () => Bananas);
Essayer de le réparer.
eject
à partir d'un CRNA base de code et de ne pas utiliser le même nom de l'application - c'est ce que j'ai fait hors de la stupiditéindex.js
n'a pas été renommé. MerciLa plupart du temps le problème est que vous avez un autre
react-native start
(c'est à dire Réagir Natif de l'Emballeur) serveur exécutant sur un autre terminal ou un autre onglet de TMUX (si vous utilisez TMUX).Vous avez besoin de trouver de processus et de le fermer, de sorte qu'après l'exécution de
react-native run-ios
par exemple, il permettra d'établir un nouveau gestionnaire de liaisons serveur inscrits pour cette application spécifique.Il suffit de trouver ce processus à l'aide de:
trouver l'id de processus (PID) et de tuer le gestionnaire de liaisons de processus à l'aide de
kill
de commande (par exemple,kill -9 [PID]
). Vous devriez trouver lelaunchPackager.command
application sous macOS, pas sûr que sur les autres systèmes d'exploitation.Puis essayez d'exécuter le
run-ios
(ou android) de nouveau. Vous devriez être capable de voir le nouveau chemin d'accès après l'exécution de la nouvelle emballeur serveur, par exemple:react-native start --port <otherport>
, dois-je exécuterreact-native run-<platform>
d'une autre manière?, mercistart
commande exécute le gestionnaire de package de serveur donc si vous avez déjà compilé votre application, il n'y a pas besoin de faire de larun-<platform>
.Modifier
MainActivity
comme ça,Tout d'abord, vous devez démarrer votre application:
Ensuite, vous devez définir le nom de l'application que le premier argument de registerComponent.
Il fonctionne très bien.
Ma solution est le changement de nom du module dans "AppDelegate.m"
de
moduleName:@"AwesomeProject"
à
moduleName:@"YourNewProjectName"
Dans mon cas, il y a cette ligne dans MainActivity.java ce qui a manqué quand j'ai utilisé
react-native-rename
cli (à partir de MNP)Évidemment tu dois renommer le nom de votre application.
J'ai eu le même problème et pour moi la cause est que j'ai couru (réaction de-natif de début) le gestionnaire de package à partir d'un autre réagir indigènes dossier (AwesomeApp), alors que j'ai créé un autre projet dans un autre dossier.
De l'exécution de l'emballeur à partir de la nouvelle app du répertoire résolu.
Veuillez vérifier votre application.fichier json dans le projet. si il n'y a pas de ligne de appKey ensuite, vous devez l'ajouter
Je pense que le nœud du serveur est en cours d'exécution à partir d'un autre dossier. Afin de le tuer et de les exécuter dans le dossier en cours.
Trouver nœud en cours d'exécution du serveur:-
lsof -i :8081
Tuer nœud en cours d'exécution du serveur :-
kill -9 <PID>
Par exemple:-
kill -9 1653
Nœud de début de serveur à partir de l'actuel réagir natif dossier:-
react-native run-android
Cela peut également être dû à la Racine composant le nom commence par les caractères minuscules.
Recorrect, ou plutôt de la création du projet une fois de plus avec un PascalCase nom.
par exemple, s'enflammer de nouveau HelloWord
Toutes les réponses données ne fonctionne pas pour moi.
J'ai eu un autre nœud de processus en cours d'exécution dans un autre terminal, j'ai fermé la commande terminal et tout a fonctionné comme prévu.
vous devez registre dans index.android.js /index.ios.js
comme ceci:
Le problème apparaît également lorsque, dans index.js, vous avez nommée l'application différemment que par le nom que vous avez donné pour l'androïde/ios paquet; probablement ce qui s'est passé lorsque vous avez éjecté de l'application. Donc, assurez-vous que lors de l'appel de
AppRegistry.registerComponent('someappname', () => App)
, someappname est également utilisé pour les paquets natifs ou vice-versa.Plutôt que de changer le nom dans
AppRegistry
,Exécuter réagir indigènes init Bananes , cela permettra de créer de réagir code réutilisable pour les Bananes projet et
AppRegistry.registerComponent
automatiquement le point de bananesNon des solutions a fonctionné pour moi. J'ai dû tuer le processus suivant et re couru réagir indigènes de l'exécution android et cela a fonctionné.
nœud ./local-cli/cli.js début
J'ai eu le même problème.
J'ai été en utilisant Windows pour la création d'un réagir application native pour android et a ayant la même erreur. Voici ce qui a fonctionné.
Enregistrer et exécuter l'application normalement. Ce qui a fonctionné pour moi.
J'ai compris où était le problème dans mon cas (Windows 10 OS), mais Elle pourrait aussi aider à Linux comme bien( Vous pouvez essayer).
Dans
windows power shell
, lorsque vous voulez lancer une application(la première fois après le pc boot) en exécutant la commande suivante,Il commence un
node process/JS server
dans un autreconsole panel
, et vous ne rencontrerez pas de cette erreur. Mais, lorsque vous souhaitez exécuter une autre application, vous doit besoin de près que déjà en cours d'exécutionJS server console panel
. Puis exécuter la même commande pour une autre application à partir de lapower shell
, la commande sera automatiquement commencer un autre nouveau serveur JS pour cette application, et vous ne rencontrerez pas de cette erreur.Vous n'avez pas besoin de de fermer et de rouvrir
power shell
pour l'exécution d'une autre application, vous devez prèsnode console
pour exécuter une autre application.