J'essaie de créer-réagir-native-app sur l'application expo sous Android.
Tout d'abord, j'ai créé le projet en écrivant la commande
test create-react-native-app
alors j'ai exécuté
npm start
puis scanné le code QR de l'application expo.
Mais après avoir scanné le code QR, j'obtiens l'erreur suivante:
Uncaught Error: Java.net,sockettimeoutException: failed to connect to after 10000ms
Problème Github:
https://github.com/react-community/create-react-native-app/issues/144#issuecomment-296631692
Dans mon cas, les paramètres du pare-feu ne l’ont pas fait à eux seuls. Mon problème était que les périphériques réseau de VirtualBox étaient prioritaires et que l'hôte de l'Expo commençait sur le mauvais réseau.
Sous Windows, vous pouvez exécuter ipconfig
et consulter vos adaptateurs réseau. npm
yarn start
semble prendre tout ce qui apparaît en premier dans cette liste.
J'ai découvert cela par ici: https://github.com/react-community/create-react-native-app/issues/60
Si vous n'avez pas besoin des autres cartes réseau de la liste, vous pouvez les désactiver dans l'interface Connexions réseau du Panneau de configuration.
Si vous avez besoin d'utiliser ces connexions _/et si vous avez un travail d'Expo, résolvez le problème que j'ai suivi ce processus :
- Panneau de configuration Aller à> Réseau et Internet> Connexions réseau
- Faites un clic droit sur la connexion souhaitée (connexion prioritaire)
- Cliquez sur Propriétés> Internet Protocol Version 4.
- Cliquez sur Propriétés> Avancé
- Décocher 'Métrique automatique'
- Entrez 10 dans 'Interface Metric'
- Cliquez sur OK
Répétez cette procédure pour la connexion de priorité inférieure, mais cette fois, mettez 20 dans la «métrique d'interface».
Vous allez maintenant utiliser la connexion de priorité supérieure par défaut.
Cela est dû au fait que le port de votre ordinateur n’est pas ouvert.
Dans Ubuntu Run In terminal
Sudo ufw status verbose
Pour afficher le port ouvert si vous ne trouvez pas le port 19000 ouvert, vous devez ouvrir le port à l'aide de
Sudo ufw allow 19000/tcp
et puis à nouveau courir
Sudo ufw allow 19001/tcp
pour servir http pour réagir natif, je résous ce problème dans mon Ubuntu en utilisant cette méthode. J'espère que cela t'aidera.
Pour ouvrir un port dans le pare-feu Windows pour accéder à TCP Dans le menu Démarrer, cliquez sur Run
, tapez WF.msc
, puis cliquez sur OK
.
Dans le Pare-feu Windows avec sécurité avancée, dans le volet de gauche, cliquez avec le bouton droit de la souris sur Règles de trafic entrant, puis cliquez sur New Rule
dans le volet Actions.
Dans la boîte de dialogue Type de règle, sélectionnez Port, puis cliquez sur Suivant.
Dans la boîte de dialogue Protocole et ports, sélectionnez TCP. Sélectionnez Ports locaux spécifiques, puis tapez le numéro de port de l'instance du port React, tel que 19000 pour l'instance par défaut. Cliquez sur Suivant.
Dans la boîte de dialogue Action, sélectionnez Autoriser la connexion, puis cliquez sur Suivant.
Dans la boîte de dialogue Profil, sélectionnez les profils décrivant l'environnement de connexion de l'ordinateur lorsque vous souhaitez vous connecter au moteur de base de données, puis cliquez sur Suivant.
Dans la boîte de dialogue Nom, tapez un nom et une description pour cette règle, puis cliquez sur Terminer.
De même, vous pouvez également ouvrir le port 19001.
Vous pouvez contourner ce problème en fixant l'adresse IP de votre ordinateur portable sur une adresse IP statique, par exemple 192.168.1.69, puis vous devez modifier l'adresse IP de l'éditeur de package natif en le faisant de la même manière
set REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.69 (Windows)
REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.69 (Mac & Linux)
recommencez votre projet et vous êtes prêt à partir.
Je vous suggère d'installer l'application expo pour réagir en natif, lien vers guide officiel ici
npm install -g exp
Ensuite, vous pouvez utiliser le logiciel Genymotion pour émuler différents paramètres d’environnement pour votre application:
exp start
Si vous utilisez dans le terminal "npm start" avec une réaction native, voici ce qui suit. J'ai découvert que si mon application fonctionnait correctement, les adresses IpV de mon ordinateur affichées dans le terminal et sur l'application Expo étaient identiques, par exemple:
ipconfig -> IPv4 Address. . . . . . . . . . . : 10.0.0.124
exp://10.0.0.124:19000
Sur la base de cette observation, j'ai résolu ce problème de la manière suivante:
Trouvez votre IP en lançant une commande dans le terminal:
ipconfig
Exécuter la commande dans l'invite de commande NodeJS avec votre IP (par exemple 10.0.0.124)
set REACT_NATIVE_PACKAGER_HOSTNAME=10.0.0.124
Lancer l'application Expo, scanner le code-barres
npm start
Si cela ne vous aide pas, utilisez les étapes suivantes recommandées par les développeurs de React en plus d'autres efforts raisonnables:
J'avais fait tout ce qui était mentionné dans le contexte… .. simplement changé mon réseau WiFi connecté de public à privé… .. cela fonctionnait pour moi
sous Windows
lancer l'invite de commande ipconfig
dans
récupérez l'adresse ip4 et copiez-la.
Que d'aller à
REACT_NATIVE_PACKAGER_HOSTNAME
puis lancez le npm start
C'est un travail pour moi
Si vous utilisez git bash pour le développement, cette solution d’Icruz4 vous aidera.
Au lieu de
set REACT_NATIVE_PACKAGER_HOSTNAME
Utilisation:
export REACT_NATIVE_PACKAGER_HOSTNAME='192.168.1.123'
Remarque:
Quand tu cours
npm start
Expo vous indique dans la sortie l'adresse IP utilisée. Si cette adresse IP n'est pas celle que vous souhaitez, la
REACT_NATIVE_PACKAGER_HOSTNAME
variable d'environnement n'est pas définie correctement
J'ai eu le même problème. Le problème est que la commande yarn start ou npm start trouve le premier adaptateur réseau activé détecté, qui se trouve être l'adaptateur de VirtualBox sur ma (et de nombreuses autres machines). La solution consiste à:
définissez manuellement la variable d'environnement REACT_NATIVE_PACKAGER_HOSTNAME ou désactivez l'adaptateur réseau non utilisé dans la connexion réseau de Windows (voir image) Le problème est que Expo a trouvé le premier adaptateur réseau, et non l'adaptateur actif fournissant la connexion Internet.
Au cas où quelqu'un cherche toujours la réponse. Commencez par commencer par désactiver le VirtualBox Host-Only Network
en ouvrant la configuration réseau. Cela a fonctionné pour moi.
Dans mon cas, ce problème était dû au fait que l'application Android Expo avait besoin de "dessiner par rapport à d'autres applications" permission et que je ne l'avais pas donnée. Je donne donc cette permission à l'application Expo et le problème est résolu.
Ce problème pourrait éventuellement être résolu par:
Définition de votre variable d'environnement avec des instructions alternatives ici
Ou
Attribution d’une priorité de matrice d’interface à vos adaptateurs réseau avec instructions détaillées ici ou ici .
Ou
Une machine Ubuntu ne parvient pas à ouvrir un port
Après avoir apporté des modifications, veuillez redémarrer l'ordinateur avant de vérifier si cela fonctionne.
Bonne chance!
Une des solutions les plus simples et fonctionnelles à 100% est:
Puis ouvrez un terminal de commande et lancez:
set REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.69 (Windows)
REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.69 (Mac & Linux)
J'ai essayé beaucoup de solutions, seule cette façon m'a aidé à résoudre ce problème:
Sous Windows:
Sudo exp start
it.Il vous suffit d’ouvrir le port dans Windows Firewall et tout devrait fonctionner.
1.Dans le menu Démarrer, cliquez sur Exécuter, tapez WF.msc et puis cliquez sur OK.
Dans le volet gauche du Pare-feu Windows avec fonctions avancées de sécurité, cliquez avec le bouton droit sur Règles entrantes, puis sur Nouvelle règle dans le volet Actions.
Dans la boîte de dialogue Type de règle, sélectionnez Port, puis cliquez sur Suivant.
Dans la boîte de dialogue Protocole et ports, sélectionnez TCP. Sélectionnez Ports locaux spécifiques, puis tapez le numéro de port de l'instance du port React, tel que 19000 pour l'instance par défaut. Cliquez sur Suivant.
Dans la boîte de dialogue Action, sélectionnez Autoriser la connexion, puis cliquez sur Suivant.
Dans la boîte de dialogue Profil, sélectionnez les profils décrivant l'environnement de connexion de l'ordinateur lorsque vous souhaitez vous connecter au moteur de base de données, puis cliquez sur Suivant.
Dans la boîte de dialogue Nom, tapez un nom et une description pour cette règle, puis cliquez sur Terminer.
De même, vous pouvez également ouvrir le port 19001.
Sous Windows,
set REACT_NATIVE_PACKAGER_HOSTNAME=my-ip-address
travaillé dans mon terminal git bash, mais pas cmd. Dans git bash, après avoir lancé npm start, j'ai reçu une fenêtre contextuelle de pare-feu sur laquelle j'ai cliqué permettre et qui a fonctionné!