Chaque fois que j'essaye de faire un appel http après environ 20 secondes, j'obtiens l'erreur suivante dans la console:
http: ^0.12.0+1 flutter: 1.0
Cette erreur se produit pour chaque méthode et chaque route que j'appelle via le package http de l'application.
Je développe une application Flutter sur Windows, en utilisant un appareil virtuel AVD d'Android Studio.
Versions:
E/flutter ( 8274): [ERROR:flutter/shell/common/shell.cc(184)] Dart Error: Unhandled exception: E/flutter ( 8274): SocketException: Failed host lookup: 'flutter-project-xxxxx.firebaseio.com' (OS Error: No address associated with hostname, errno = 7)
Cas:
Depuis la maison ou via le partage de connexion depuis mon téléphone: la connectivité fonctionne correctement sur chaque partie de l'appareil virtuel
Depuis mon réseau de travail (derrière le pare-feu):
Seulement avec Android Web View, je peux naviguer sur Internet sans aucun problème (je peux même appeler la même URL, j'utilise dans le code et cela fonctionne). J'obtiens une erreur de connexion lorsque j'utilise une autre application (Chrome, Google Play, ecc ...) dans le périphérique virtuel, et plus précisément "SocketException", lors du test de mon application.
Quelle est la différence entre les appels provenant de cette application? Existe-t-il un moyen d'acheminer les appels de mon application de la même manière que ceux de la vue Web?
Merci!
21 Réponses :
Essayez d'ajouter <uses-permission android:name="android.permission.INTERNET" />
à votre fichier AndroidManifest.xml
.
Est-ce que cela a fonctionné, j'ai le même problème, les appels http fonctionnent sur le développement mais échouent en production.
L'ajout d'une autorisation Internet n'est pas seulement une solution.
Vous devez également vous assurer que vous êtes en ligne, qu'il s'agisse d'un mobile ou d'un émulateur
Assurez-vous que vous êtes en ligne, qu'il s'agisse d'un mobile ou d'un émulateur
Assurez-vous d'avoir donné l'autorisation Internet dans android / app / src / main / AndroidManifest.xml de votre application
<uses-permission android:name="android.permission.INTERNET"/>
Curieusement, cela fonctionne sans l'autorisation Internet en mode débogage
Si l'application a besoin d'accéder à l'état du réseau, c'est-à-dire permettre à l'application d'accéder aux informations sur les réseaux, l'autorisation suivante est également nécessaire. <uses-permission android: name = "android.permission.ACCESS_NETWORK_STATE" /> Pour plus d'informations: developer.android.com/training/basics/network-ops/connecting
quelque temps arrive cette erreur, redémarrez apk le résoudre.
@Choco comme vous le faites sur votre téléphone
J'ai découvert qu'il existe plusieurs AndroidManifest.xml. Au moins un dans / main et un autre dans / debug.
Eu le même problème. Ajout de permissions d'utilisation android: name = "android.permission.INTERNET" à "android / app / src / main / AndroidManifest.xml". Je ne pouvais toujours pas fonctionner, puis j'ai quitté et redémarré l'émulateur, puis cela a fonctionné.
Même chose ici, impossible de se connecter au monde extérieur via http et j'avais également cette entrée dans le fichier AndroidManifest.xml. Donc, j'ai redémarré l'émulateur et voilà, a très bien fonctionné.
Si vous utilisez un émulateur, assurez-vous que les données mobiles sont actives
c'est ce qui a fonctionné pour moi. J'ai dû désactiver le wifi et me fier uniquement aux données. J'avais déjà le <uses-permission android: name = "android.permission.INTERNET" />.
Le problème survient essentiellement lorsque l'appareil tente d'accéder à des ressources Internet, pour résoudre le problème, ajoutez le fichier au fichier AndroidManifest.xml @ android / app / src.
Vérifiez si le wifi est connecté ou non. Le mien a fonctionné après le redémarrage du wifi.
Si vous obtenez cette erreur lors de l'utilisation du plugin flutter_socket_io
, n'oubliez pas d'initialiser la socket ie socketIO.init(); socketIO.connect();
avant d'essayer de vous y abonner. J'ai reçu la même erreur que celle indiquée ci-dessus lorsque je l'ai omise.
Vérifiez si vous avez activé le travail hors ligne dans les paramètres de gradle. Fichier-> Paramètres -> Construire -> Outils de construction -> Travail hors ligne
S'il est activé ou coché, décochez-le.
Assurez-vous que votre appareil mobile ou votre émulateur est connecté à Internet
Lorsque j'ai activé le wifi sur mon appareil, cela fonctionnait bien.
S'il vous plaît postez votre ce type de réponse dans la section des commentaires s'il contient du code, alors c'est ok s'il vous plaît assurez-vous à l'avenir
Traduit: Dans mon cas, l'ordinateur avait Internet, mais pas l'émulateur. J'ai configuré la connexion sur l'émulateur et je l'ai résolue.
Original: Dans mon cas, l'ordinateur avait Internet, mais pas l'émulateur. J'ai configuré la connexion sur l'émulateur et je l'ai résolue.
@SkypeMeSM Veuillez ne pas traduire les articles de l'auteur. Si l'auteur ne peut pas exprimer sa contribution en anglais, il n'est pas non plus en mesure de recueillir des commentaires, de discuter et de réagir.
Vérifiez / assurez-vous d'avoir
<uses-permission android:name="android.permission.INTERNET" />
dans le fichier android / app / src / main / AndroidManifest.xml de votre application
Même après avoir ajouté
<uses-permission android:name="android.permission.INTERNET"/>
dans votre android / app / src / main / AndroidManifest.xml, si vous rencontrez toujours des problèmes,
Il peut y avoir une erreur avec l' adresse IP du serveur du site Web comme:
L'adresse IP du serveur est introuvable
Il vaut mieux attendre un certain temps et s'assurer de redémarrer le wifi, cela a fonctionné pour moi.
Assurez-vous que votre émulateur ou votre appareil est connecté à Internet. si votre émulateur ne peut pas se connecter à Internet, utilisez un VPN.
Parfois, un autre wifi peut avoir des interférences avec votre wifi connecté, ce qui peut également provoquer cette erreur. Essayez de définir le canal de votre wifi connecté sur auto ou à l'écart des autres canaux du wifi.
Même moi, j'ai eu le même problème. J'ai redémarré mon émulateur et cela a fonctionné !!
Veuillez vérifier votre formulation "Même moi ...". Aux lecteurs ayant des antécédents linguistiques différents qui se lisent bizarrement et pourraient être mal interprétés (avec un certain effort certes) comme quelque chose de irrespectueux.
En activant le WIFI, cela fonctionne pour moi et assurez-vous que vous avez également ajouté l'autorisation Internet dans le manifeste Android, il a également été ajouté automatiquement, mais vous devez vous en assurer. si ce n'est toujours pas le cas, invalidez les caches et redémarrez en espérant que cela fonctionne
J'ai eu le même problème lors de l'exécution de l'application sur un émulateur .
Mon ordinateur portable était connecté à Internet via le point d'accès mobile de mon téléphone. Mais apparemment, l'émulateur n'a pas pu accéder à Internet
Plus tard, je suis passé à la connexion de mon routeur Wi-Fi et l'application s'est déroulée sans problème comme prévu.
Je ne suis pas sûr, mais y a-t-il un accès spécial à accorder?
Astuce: essayez de googler quelque chose sur l'émulateur pour vérifier la connectivité Internet
Optez pour le gestionnaire AVD, puis choisissez votre émulateur, dans le menu Actions, cliquez sur le signe d'option vers le bas, puis choisissez effacer les données, puis redémarrez votre émulateur. Ça marche pour moi.