web-dev-qa-db-fra.com

Erreur de délai de réponse du réseau (create-react-native-app) (expo)

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

 enter image description here

Problème Github: 

https://github.com/react-community/create-react-native-app/issues/144#issuecomment-296631692

29
YaSh Chaudhary

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. npmyarn 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 :

  1. Panneau de configuration Aller à> Réseau et Internet> Connexions réseau
  2. Faites un clic droit sur la connexion souhaitée (connexion prioritaire)
  3. Cliquez sur Propriétés> Internet Protocol Version 4.
  4. Cliquez sur Propriétés> Avancé
  5. Décocher 'Métrique automatique'
  6. Entrez 10 dans 'Interface Metric'
  7. 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.

40
IronSean

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.

36
manoj

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.

20
Youcef Chihi

 enter image description here

Tout d’abord, désactivez la connexion réseau inutilisée. Dans mon cas, c'était VirtualBox. Peut-être qu'il utilise le même port. Je ne suis pas sûre à propos de ça. Après avoir désactivé les connexions inutilisées, redémarrez le conditionneur. si vous avez utilisé npm, tapez 

npm start
5
Hoque MD Zahidul
  • Adresse ipv4 trouvée
  • ouvrez l'expo app puis appuyez sur pour explorer le bouton du bas 
  • write exp: // [ipv4adress]: 19000 to searchbar 
  • Ensuite, votre application va s'ouvrir
3
asynk1

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:

  1. Fermer le script d'invite npm qui exécute l'application
  2. Fermer l'application Expo
  3. Trouvez votre IP en lançant une commande dans le terminal:

    ipconfig
    
  4. 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
    
  5. 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:

  6. Installer Genymotion avec VirtualBox
  7. Inscription sur le site de Genymotion
  8. Lancer le logiciel Genymotion et !!! SignIn
3
Roman

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

2
Raj

sous Windows

  1. lancer l'invite de commande ipconfig dans

  2. récupérez l'adresse ip4 et copiez-la.

Que d'aller à 

  1. Ce PC> Propriétés> Paramètres système avancés> Variables d'environnement
  2. ajoutez la variable système suivante: REACT_NATIVE_PACKAGER_HOSTNAME
  3. En tant que valeur de la variable, je devais coller l'ip4.

puis lancez le npm start C'est un travail pour moi 

2
Ragulan28

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

2
Hargun Singh

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.

 enter image description here

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.

1
Nouman Ghaffar

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. 

1
Moein Fazeli

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!

1
psyanite

Une des solutions les plus simples et fonctionnelles à 100% est:

  1. Activez le point d'accès mobile de votre ordinateur de développement (PC ou Bureau) et connectez votre appareil Android à ce point d'accès.
  2. Allez au Panneau de configuration> Réseau et Internet> Connexions réseauVous allez atterrir ici comme indiqué: Paramètre Connexions réseau
  3. Ensuite, définissez l'adresse IP de la connexion au réseau local (votre ordinateur de bureau) sur l'adresse souhaitée, par exemple: 192.168.1.69 en cliquant avec le bouton droit de la souris sur la connexion concernée, puis en cliquant sur Propriétés -> Version du protocole Internet 4(TCP/IPv4) -> Propriétés. Puis définissez la priorité de cette connexion sur la valeur la plus élevée, ce qui est le mieux décrit ici
  4. 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)
    
  5. Ensuite, redémarrez votre serveur expo en exécutant npm start dans le dossier de votre projet expo et exécutez l'application sur votre appareil Android en scannant le code QR généré à l'aide de l'application expo.
1

J'ai essayé beaucoup de solutions, seule cette façon m'a aidé à résoudre ce problème:

Sous Windows:

  • accédez à "Réseau et connexions" dans le Panneau de configuration de Windows (Centre Réseau et partage> Modifier les paramètres de l'adaptateur).
  • Désactiver toutes les boîtes virtuelles que vous pouvez voir ici
  • Redémarrez npm ou fil ou expo ...
0
Ali Tavana
  1. Sur votre appareil: connectez-vous à votre application expo, créez un compte si vous n'en avez pas.
  2. Dans votre système: ouvrez le terminal et accédez au répertoire de votre projet via la commande cd, puis tapez Sudo exp startit.
  3. Il vous donnera le code à scanner.
0
Suraj Vaishnav

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.

0
user3109814

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é!

0
programmingmusic