web-dev-qa-db-fra.com

Réaction native ERREUR Packager ne peut pas écouter sur le port 8081

J'ai configuré React native sur mon ordinateur Windows et il me donne continuellement ce message lors de l'exécution de react-native start:

ERREUR Le conditionneur ne peut pas écouter sur le port 8081

Ok, alors je le change par instructions en: 

react-native start --port = 8088

Cela fonctionne très bien et je reçois ceci:

[12/24/2016, 10:03:33 AM]         HMR Server listening on /hot
React packager ready.
[12/24/2016, 10:03:41 AM] <START> Initializing Packager
[12/24/2016, 10:03:41 AM] <START> Building in-memory fs for JavaScript
[12/24/2016, 10:03:41 AM] <END>   Building in-memory fs for JavaScript (103ms)
[12/24/2016, 10:03:41 AM] <START> Building Haste Map
[12/24/2016, 10:03:41 AM] <END>   Building Haste Map (64ms)
[12/24/2016, 10:03:41 AM] <END>   Initializing Packager (221ms)

Donc, comme indiqué, je lance ensuite ceci:

C:\ReactProjects\AwesomeProject> réactif natif sous Android

Et obtenez ceci:

JS server not recognized, continuing with build...
Running C:\Users\<user>\AppData\Local\Android\sdk/platform-tools/adb -s emulator-5554 reverse tcp:8081 tcp:8081
Building and installing the app on the device (cd Android && gradlew.bat installDebug)...
JS server not recognized, continuing with build...
Running C:\Users\<user>\AppData\Local\Android\sdk/platform-tools/adb -s emulator-5554 reverse tcp:8081 tcp:8081
Building and installing the app on the device (cd Android && gradlew.bat installDebug)...
.
.
.
BUILD SUCCESSFUL
Total time: 19.304 secs
Starting the app on emulator-5554 (C:\Users\<user>\AppData\Local\Android\sdk/platform-tools/adb -s emulator-5554 Shell am start -n com.awesomeproject/.MainActivity)...
Starting: Intent { cmp=com.awesomeproject/.MainActivity }

Malheureusement, l'émulateur me donne alors:

“Could not get BachedBridge, make sure your bundle is packaged correctly”

Il y a donc des instructions qui indiquent que vous devez changer le port de l'émulateur, mais j'utilise le Nexus 5 sous Marshmellow et ne trouve pas ce paramètre:

     You will also need to update your applications to load the JavaScript bundle
     from the new port. Open the in-app Developer menu, then go to Dev Settings → Debug
 server Host for device and replace 8081 with your port of choice.

Quelqu'un a une idée de la façon de configurer l'émulateur pour qu'il reconnaisse le conditionneur? 

3
pthorsey

Malheureusement, les messages d'erreur natifs de Rect ne sont pas très conviviaux. :(

L'erreur «Impossible d'obtenir BachedBridge, assurez-vous que votre paquet est correctement emballé» signifie que votre appareil n'est pas connecté à votre système.

Fondamentalement, lorsque nous démarrons Rea-native, il déploie des éléments dans le mobile/émulateur, mais lorsque l'application s'exécute dans mobile/émulateur, elle ne sait pas d'où elle doit extraire des éléments de code, tels que des assest, des packages, etc. 

Donc, nous devons dire à l'émulateur que, patron, veuillez prendre toutes vos affaires sur le serveur blahblah du port blablah. Nous devons faire exactement ce que vous avez mentionné dans la question.

Ouvrez le menu Développeur intégré à l'application, puis sélectionnez Paramètres de développement → Hôte du serveur de débogage pour le périphérique.

Ok, nous devons donc réaliser 2 choses:

  1. Ouvrir le menu Développeur dans l'émulateur:

    Le menu du développeur est une fenêtre contextuelle modale avec un tas d’options telles que, Reload, Debug JS à distance, Activer le rechargement en direct, Activer le rechargement à chaud, Basculer l’inspecteur ..., Paramètre de développement (il s’agit de celui qui nous intéresse ). Il y a plusieurs façons de le faire (voir ci-dessous), voyez ce qui vous convient

    • Si vous êtes un utilisateur Mac, appuyez simplement sur CMD + M. Cela ouvrira une fenêtre contextuelle pour vous.
    • Si vous êtes un non-Mac, essayez CTRL + M
    • Pour certaines personnes, appuyer sur F2 fonctionnait. "fn + f2"
    • Si vous êtes frustré et que rien ne fonctionne, essayez de lancer la commande ci-dessous dans le terminal (évidemment lorsque l'émulateur est activé) Running on Device :
    adb Shell input keyevent 82
    
  2. Configurer les paramètres de développement -> Déboguer sur le serveur Hôte et port pour le périphérique **

    Après avoir ouvert le menu Développeur, accédez à "Paramètres de développement -> Déboguer sur le serveur, hôte et port pour le périphérique". 

    Cet endroit est le Saint Graal pour la solution à votre problème.

    Obtenez l’adresse IP de votre machine et le port sur lequel vous avez démarré réago-natif (par exemple 8088) et entrez-le ici. Cela ressemblera à "192.168.1.105:8088". Voir le lien de l'image ici

    Cliquez sur OK et rechargez l'application (en appuyant deux fois sur R ou en cliquant sur Recharger dans le menu Développeur) et le tour est joué.

1
Brijesh Pandey

Vous pouvez utiliser la commande suivante pour exécuter le conditionneur sur un autre port
react-native start --port = 8082  

OU Vous pouvez trouver le processus qui utilise le port 8081 par netstat -a -b -o

netstat vous donne le PID du processus. tuer ce processus par taskkill/F/pid 8081

Si vous utilisez un périphérique physique, désinstallez l'application avant d'exécuter react-native run-Android  

0
user7405610

Je faisais face à un problème similaire puisque même sur mon ordinateur portable Windows, McAfee est installé. Le problème a été résolu pour moi en suivant les étapes décrites ci-dessous:

1) Accédez à la racine du projet et démarrez react-native sur un autre port en codant en dur cette valeur dans server.js (veuillez vous reporter à cette réponse ).

react-native start

2) Ouvrez maintenant une autre instance de la commande Invite dans le répertoire racine et exécutez les commandes ci-dessous les unes après les autres (vous pouvez éventuellement créer un fichier bat avec les commandes suivantes, puis le placer dans le répertoire racine). Veuillez remplacer le numéro de port de l'émulateur (dans mon cas 5554) et le numéro de port de votre serveur réactif natif (dans mon cas 8088) par les valeurs appropriées.

adb -s emulator -5554 reverse tcp:8088 tcp:8088
node node_modules/react-native/local-cli/cli.js bundle --platform Android --dev true --reset-cache --entry-file index.Android.js --bundle-output Android/app/build/intermediates/assets/debug/index.Android.bundle --assets-dest Android/app/build/intermediates/res/merged/debug
cd Android && gradlew.bat installDebug

La commande du noeud est expliquée par sumit6b

3) Après avoir exécuté la commande ci-dessus, le serveur réactif natif générerait une erreur et s’arrêterait. Toutefois, le fichier apk serait installé dans notre AVD. Le nom du fichier serait le même que le nom de notre projet. Ouvrez ce fichier manuellement dans l’AVD. Lorsque l'application s'ouvre, , vous pouvez accéder aux paramètres de développement en appuyant sur Ctrl + M. Ici, allez sur le serveur de débogage Hôte et port pour le périphérique et tapez localhost: 8088 (remplacez si nécessaire par le numéro de port approprié) et cliquez sur OK. Maintenant, répétez les étapes 1 et 2. Cette fois, le serveur réactif natif ne se terminera pas. Fermez l'application précédemment ouverte et ouvrez-la à nouveau manuellement dans AVD. Il devrait indiquer "Récupérer le paquet JS" et le serveur natif de réaction devrait dire quelque chose comme "Transformer les fichiers"

4) À ce stade, votre serveur réactif natif et votre AVD sont synchronisés. Vous pouvez le vérifier en apportant des modifications à index.Android.js, puis en appuyant sur Rouple, puis appuyez sur R dans l'émulateur.

5) Si vous rencontrez toujours des problèmes, essayez de changer localhost avec l'adresse IP de votre machine dans l'hôte et le port du serveur de débogage pour les paramètres de périphérique présents dans AVD.

0
Saurabh Gour