web-dev-qa-db-fra.com

Erreur lors de l'appel de Appregistry.runApplication dans react-native

J'essaie de faire fonctionner une application native sur Android émulateur, mais je reçois une erreur comme

Erreur lors de l'appel de Appregistry.runApplication

AVD: 'Nexus_5X_API_23 (AVD) - 6.0 OS: Windows 10

enter image description here

S'il vous plaît aider sur ce point?

47
Gopesh

Enfin, je l'ai fait fonctionner.J'ai créé un nouveau AVD

API Nexus6 23

J'essayais plus tôt = API Nexus5x 2. Merci à tous

1
Gopesh

J'ai eu presque le même problème que vous avez actuellement il y a quelques jours. Pour moi, c'était un vrai appareil.

Parmi toutes mes recherches, la solution qui a fonctionné pour moi est la suivante:

Lorsque vous lancez votre application en tapant react-native run-Android, l'erreur apparaît.

Alors, accédez à votre répertoire contenant "adb.exe" (pour moi c'était C:\Utilisateurs\nom d'utilisateur\AppData\Local\Android\Sdk\platform-tools \)

ouvrez un terminal d'ici. Et tapez adb reverse tcp:8081 tcp:8081

Ensuite, en rechargeant l'application sur le téléphone, cela devrait fonctionner.

J'espère que cela t'aidera !! (sinon, honte à moi)

À votre santé ;)

MODIFIER :

J'ai trouvé une solution plus pratique pour résoudre ce problème.

Lorsque vous lancez votre "réactif natif sous Android", vous pouvez avoir un commentaire disant "adb n'est pas reconnu comme une commande interne ou externe ..."

Au lieu d'utiliser manuellement la commande adb, vous pouvez ajouter une variable d'environnement menant à adb.exe.

Allez simplement dans "Panneau de configuration"> "Système et sécurité"> "Système"> "Paramètres système avancés".

De là, cliquez sur "Variables d'environnement". Recherchez la variable "Path" dans la section "Variables système". Cliquez dessus et appuyez sur le bouton "Modifier".

Là, vous pouvez ajouter un nouveau chemin à cette variable. Cliquez simplement sur le bouton "Nouveau" et écrivez le chemin adb.exe. Par exemple, C:\Utilisateurs\nom d'utilisateur\AppData\Local\Android\Sdk\platform-tools \

(Pour les versions les plus anciennes de Windows, vous devrez ajouter "; C:\Utilisateurs\nom d'utilisateur\AppData\Local\Android\Sdk\plate-outils \" au contenu.)

Ça y est, maintenant le adb reverse tcp:8081 tcp:8081 La commande sera exécutée automatiquement lors de la construction.

J'espère que cela vous aidera encore plus!

35
Swainge

J'ai eu le même problème, ma solution était de courir

$ react-native start

en arrière-plan puis courir

$ react-native run-Android
24
dudasaus

Selon moi, cette erreur survient lorsque:

1) Vous n’avez pas exécuté le conditionneur au bon endroit, c’est-à-dire que vous avez choisi le mauvais dossier pour exécuter le conditionneur natif, vous devez donc naviguer dans le répertoire de votre projet et exécuter react-native start.

2) lorsque vous codez quelque chose de mal en ce qui concerne le module Appregistry.

3) Fermez tout Xcode, le conditionneur, le simulateur, etc. et redémarrez-le.

4) Une erreur me vient à l’esprit, c’est le nom du module.

AppRegistry.registerComponent('AppName', () => componentName)

matches with the @"AppName" on your AppDelegate.m on the call for

[[RCTRootView alloc] initWithBundleUrl:...
                            moduleName:@"AppName"
                         launchOptions:...

5) Comme nous utilisons le composant react, nous devons donc donner le premier caractère de notre nom de classe avec des majuscules.

6) Voyons ce qui ne va pas dans index.Android.js et index.ios.js

À votre santé :)

17
Codesingh

J'ai eu le même problème. Il se peut que McAffee se trouvait sur le port 8081 et bloquait le conditionneur. Ma solution:

react-native start --port your_port

Dans Android, menu Commande + M show dev, cliquez sur "Paramètres du développeur", puis sur "Hôte et port du serveur de débogage" et réglez-le sur votre_ip: votre_port.

Ensuite

react-native run-Android
2
Mr Jedi

Dans mon cas (après, bien sûr, en parcourant tout ce que je pouvais trouver ici et ailleurs), j'ai réalisé que j'avais désactivé mon WiFi sur mon téléphone ... ça ne marche pas comme ça! J'espère que ça aide quelqu'un

2
kwishnu

Assurez-vous que le port 8081 est disponible. Dans mon cas, l'un de mes services est exécuté sur le port 8081 (serveur Web Tomcat).

1
Vino

J'ai eu le même problème et j'ai pu le résoudre en définissant mon ordinateur local comme serveur de débogage dans l'émulateur Android. Ouvrez l'émulateur Android, Command + M pour afficher un menu, puis cliquez sur "Paramètres de développement", puis sur "Hôte et port du serveur de débogage" et réglez-le sur 127.0.0.1:8081. Ensuite, dans votre répertoire de projet, exécutez react-native run-Android. J'espère que ça aide.

1
sjc42002

Pour moi, je devais simplement ajouter les outils de la plate-forme à la variable d’environnement Path afin de permettre à react-native de démarrer le serveur adb.

Je devenais:

'adb' is not recognized as an internal tool or program

Pour résoudre ce problème, j'ai ajouté ce qui suit à ma variable d'environnement Path.

C:\Users\<Username>\AppData\Local\Adnroid\sdk\platform-tools

Puis en cours d'exécution react-native run-Android travaillé!

0
Chase

J'avais exactement le même problème (car il s'agit d'un message très générique), mais le problème était différent. Dans mon cas, c'était un projet nouvellement créé, l'émulateur ne fonctionnait pas, mais un vrai périphérique fonctionnait.

Mon problème était la limite d'observateurs que inotify peut gérer par défaut sur Linux, qui est un sous-système du noyau Linux qui agit pour étendre les systèmes de fichiers afin de remarquer les modifications apportées au système de fichiers et pour signaler ces modifications aux applications. y compris Android studio et réagissez nativement; au moment où j'essayais d'exécuter react-native run-Android tous les observateurs ont été alloués sur mon système, ce qui a entraîné l'échec du processus sur le même message.

Pour modifier le nombre maximum d'observateurs que inotify peut gérer, vous devez modifier le fichier sysctl.conf, qui sera généralement situé à /etc/sysctl.conf ou /etc/sysctl.d/custom_name.conf et ajoutez la ligne suivante:

 fs.inotify.max_user_watches = 5242881

Après avoir écrit le fichier, vous devez exécuter sysctl -p filename.conf où "nomfichier.conf" est le chemin d'accès et le nom de l'emplacement où vous avez enregistré le fichier .conf pour sysctl. Une fois les modifications appliquées, tout devrait fonctionner comme prévu.

Moi aussi j'ai eu le même problème. J'ai résolu le problème pour exécuter sur le périphérique réel.

Comme l'a dit M. Jedi, McAffee a bloqué le port 8081. J'ai donc modifié la fonction Project-Folder>\node_modules\react-native\local-cli\runAndroid\runAndroid.js de

function tryRunAdbReverse(device) {
   try {
     const adbPath = getAdbPath();
     const adbArgs = ['reverse', 'tcp:8081', 'tcp:8081'];

à

function tryRunAdbReverse(device) {
   try {
     const adbPath = getAdbPath();
     const adbArgs = ['reverse', 'tcp:8081', 'tcp:3040'];

et a commencé l'application sur

      react-native start --port 3040
0
Ramesh K

Je sais que beaucoup de réponses ont été données à cette question, mais je pense que cela vaut la peine d’ajouter ma solution. J'espère que cela aidera quelqu'un.

Dans mon cas, le problème venait de ma machine virtuelle. Bien que je n’aie pas enquêté, mais en créant un nouveau périphérique virtuel, l’application s’est bien déroulée, sans problème.

Il suffit donc de créer un nouveau périphérique virtuel. :)

0
Daniel Barde