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
S'il vous plaît aider sur ce point?
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
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!
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
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é :)
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
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
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).
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.
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é!
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
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. :)