Was kann ich im Android-Emulator von Eclipse tun, um eine Verbindung zu meiner localhost-Webserverseite unter http://localhost
oder herzustellen http://127.0.0.1
?
Ich habe es versucht, aber der Emulator nimmt meine Anfrage immer noch wie eine Google-Suche nach localhost entgegen oder schlimmer noch, er hat die Seite nicht gefunden, während mein Webserver normalerweise ausgeführt wird.
android
android-emulator
localhost
loopback-address
Fopa Léon Constantin
quelle
quelle
Antworten:
Der localhost bezieht sich auf das Gerät, auf dem der Code ausgeführt wird, in diesem Fall den Emulator.
Wenn Sie sich auf den Computer beziehen möchten, auf dem der Android-Simulator ausgeführt wird, verwenden Sie stattdessen die IP-Adresse 10.0.2.2 .
Sie können mehr von lesen hier .
quelle
Verwenden Sie
10.0.2.2
für Standard-AVD und10.0.3.2
fürGenymotion.quelle
10.0.3.2
unsere Host-Datei hinzu?Ich habe 10.0.2.2 erfolgreich auf meinem Heimcomputer verwendet, aber bei der Arbeit hat es nicht funktioniert. Nach stundenlangem Herumalbern habe ich mit dem AVD-Manager ( Android Virtual Device ) eine neue Emulatorinstanz erstellt , und schließlich hat 10.0.2.2 funktioniert.
Ich weiß nicht, was mit der anderen Emulatorinstanz falsch war (die Plattform war dieselbe), aber wenn Sie feststellen, dass 10.0.2.2 nicht funktioniert, versuchen Sie, eine neue Emulatorinstanz zu erstellen.
quelle
Versuchen Sie,
http://10.0.2.2:8080/
wo8080
Ihre Portnummer ist. Es hat perfekt funktioniert. Wenn Sie es einfach versuchen10.0.2.2
, wird es nicht funktionieren. Sie müssen die Portnummer hinzufügen. Wenn Microsoft IIS installiert wurde, deaktivieren Sie diese Funktion in der Systemsteuerung (wenn Sie ein Windows-Betriebssystem verwenden) und versuchen Sie es dann wie oben angegeben.quelle
laut Dokumentation:
überprüfen Emulator Networking für mehr Tricks auf Emulator Vernetzung.
quelle
Für mein Mac OS Mountain Lion Gerät:
Funktioniert perfekt!
quelle
Ich musste die IP-Adresse des Systemhosts für den Emulator "Nox App Player" herausfinden. Hier ist, wie ich herausgefunden habe, dass es war
172.17.100.2
.ip link show
Befehl , um alle Netzwerkschnittstellen anzuzeigen. Von besonderem Interesse war die eth1-Schnittstelleifconfig eth1
Befehl , zeigt net als172.17.100.15/255.255.255.0
172.17.100.1
und erhalten Sie einen Treffer für "172.17.100.2". Ich bin mir nicht sicher, ob eine Firewall stören würde, aber in meinem Fall nichtVielleicht kann dies jemand anderem helfen, es für andere Emulatoren herauszufinden.
quelle
Wenn Sie sich in Windows befinden, können Sie zu simbol system gehen und ipconfig schreiben und überprüfen, welche IP Ihrem Computer zugewiesen ist.
quelle
Sie können tatsächlich
localhost:8000
eine Verbindung zum localhost Ihres Computers herstellen, indem Sie jedes Mal, wenn Sie Ihren Emulator ausführen, den folgenden Befehl ausführen (nur auf dem Mac getestet):Stellen Sie es einfach in das Android Studio-Terminal.
Grundsätzlich wird ein Reverse-Proxy eingerichtet, bei dem ein auf Ihrem Telefon ausgeführter http-Server Verbindungen an einem Port akzeptiert und diese mit Ihrem Computer verbindet oder umgekehrt.
quelle
Ich weiß nicht, vielleicht ist dieses Thema bereits gelöst, aber als ich kürzlich versucht habe, dies auf einem Windows-Computer zu tun, hatte ich viele Schwierigkeiten. Meine Lösung war also wirklich einfach. Ich habe dieses Soft http://www.lenzg.net/rinetd/rinetd.html heruntergeladen den Anweisungen zum Portweiterleiten gefolgt. Dann hat mein Android-Gerät erfolgreich eine Verbindung hergestellt, um das asp.net localhost-Projekt zu erstellen, und an meinem Bruchpunkt angehalten.
meine rinetd.conf Datei:
Wobei 10.1.1.20 meine localhost IP, 82 und 1234 meine Ports ist. Außerdem habe ich eine Baddatei für ein einfaches Leben erstellt. Yournameofbathfile.bat, lege diese Datei in den Ordner rined. Meine Baddatei:
Nachdem Sie diese Software gestartet haben, starten Sie Ihren aps.net-Server und versuchen Sie, von einem Android-Gerät oder einem anderen Gerät in Ihrem lokalen Netzwerk (z. B. Computer ABC startet Putty) darauf zuzugreifen. Sie werden sehen, dass alles funktioniert. Sie müssen nicht zur Router-Einstellung gehen oder andere komplizierte Dinge tun. Ich hoffe, dies wird dir helfen. Genießen.
quelle
Eine andere Problemumgehung besteht darin, eine kostenlose Domain von no-ip.org zu erhalten und auf Ihre lokale IP-Adresse zu verweisen. Dann
http://localhost/yourwebservice
können Sie es versuchen , anstatt es zu verwendenhttp://yourdomain.no-ip.org/yourwebservice
quelle