Come connettermi al mio http: // server web localhost dall'emulatore Android in Eclipse


485

Cosa posso fare nell'emulatore Android di Eclipse per collegarlo alla pagina del mio server web localhost su http://localhosto http://127.0.0.1?

L'ho provato, ma l'emulatore accetta ancora la mia richiesta come una ricerca su Google per localhost o, peggio ancora, dice che non ha trovato la pagina mentre il mio web server è normalmente in esecuzione.


Questa domanda è di circa l'Android Emulator e ha soluzioni applicabili a questo caso da solo . Se si riscontra questo problema quando si utilizza un dispositivo Android fisico , consultare invece stackoverflow.com/questions/4779963/…
Chris Stratton,

Risposte:


819

Localhost si riferisce al dispositivo su cui è in esecuzione il codice, in questo caso l'emulatore.

Se si desidera fare riferimento al computer su cui è in esecuzione il simulatore Android, utilizzare invece l'indirizzo IP 10.0.2.2 .

inserisci qui la descrizione dell'immagine

Puoi leggere di più da qui .


12
perché riferirsi all'altra domanda? aggiungi semplicemente l' emulatore
Marvin Emil Brach il

Grazie per aver segnalato il link. Immagino che non fosse presente quando è stata pubblicata la risposta.
Primal Pappachan,

1
@primpap: posso usare il nome della macchina anziché l'indirizzo IP ??
KJEjava48,

@primpap questo non funziona con il debug mobile. Ce n'è un altro? O sto facendo un errore da qualche parte perché 10.0.2.2 sta lavorando sull'emulatore ma non funziona quando mi collego mobile per il debug USB. ?
Jawad Zeb,

5
Questa soluzione funziona solo su emulatori , come richiesto nella domanda specifica qui. Coloro che eseguono il debug su un dispositivo Android fisico dovranno utilizzare l'indirizzo IP o il nome effettivo del server, non potranno utilizzare questo speciale alias solo dell'emulatore. Questa risposta è buona , ma i lettori devono fare attenzione che la loro situazione sia quella in cui è applicabile .
Chris Stratton,

156

Utilizzare 10.0.2.2per AVD predefinito e 10.0.3.2per.


Quindi aggiungiamo semplicemente il 10.0.3.2nostro file host?
Ayjay,

29

Ho usato 10.0.2.2 con successo sul mio computer di casa, ma al lavoro non funzionava. Dopo ore passate a scherzare, ho creato una nuova istanza dell'emulatore usando il gestore di dispositivi virtuali Android (AVD) e alla fine il 10.0.2.2 ha funzionato.

Non so che cosa non andava nell'altra istanza dell'emulatore (la piattaforma era la stessa), ma se trovi che 10.0.2.2 non funziona, prova a creare una nuova istanza dell'emulatore.


4
Sfortunatamente per me non funziona nemmeno dopo aver creato una nuova istanza AVD. Che cosa suggerisci? Per reinstallare tutto?
Vlado Pandžić,

23

Prova http://10.0.2.2:8080/dov'è il 8080tuo numero di porta. Ha funzionato perfettamente. Se provi 10.0.2.2, non funzionerà. È necessario aggiungere il numero di porta ad esso. Inoltre, se è stato installato Microsoft IIS, provare a disattivare quella funzione dal pannello di controllo (se si utilizza un sistema operativo Windows), quindi provare come indicato sopra.


2
Cosa succede se le pagine sono ospitate su IIS?
succo di maracuja,

@Marimba capisce solo su quale porta serve il tuo server IIS, quindi accedi a 10.0.2.2:your_iis_port
StoneLam

questa è una stringa completata e ha funzionato solo sul mio emulatore Android 8.1
CodeToLife,

10

secondo la documentazione:

10.0.2.2 - Alias ​​speciale per l'interfaccia di loopback dell'host (ovvero, 127.0.0.1 sulla macchina di sviluppo)

controlla la rete dell'emulatore per ulteriori suggerimenti sulla rete dell'emulatore.



3

Avevo bisogno di capire l'indirizzo IP dell'host di sistema per l'emulatore "Nox App Player". Ecco come l'ho capito 172.17.100.2.

  1. Emulatore di terminale Android installato dall'app store
  2. Emettere il ip link showcomando per mostrare tutte le interfacce di rete. Di particolare interesse è stata l'interfaccia eth1
  3. Invia ifconfig eth1comando, mostra net as172.17.100.15/255.255.255.0
  4. Inizia a eseguire il ping degli indirizzi a partire da 172.17.100.1, ottiene un hit su "172.17.100.2". Non sono sicuro se un firewall interferirebbe, ma nel mio caso no

Forse questo può aiutare qualcun altro a capirlo per altri emulatori.


1

Se sei su Windows puoi andare sul sistema simbol e scrivere ipconfig e controllare quale ip è assegnato al tuo computer.


Ciò non è necessario quando si esegue il debug da un emulatore, poiché è possibile utilizzare l'alias speciale per l'interfaccia di loopback dell'host citata nelle altre risposte. Tuttavia, se si esegue il debug da un dispositivo Android fisico, quindi sì, è necessario determinare l'indirizzo effettivo del server di prova e utilizzarlo.
Chris Stratton,

1

Puoi effettivamente utilizzare localhost:8000per connetterti all'host locale della tua macchina eseguendo il comando seguente ogni volta che esegui l'emulatore (testato solo su Mac):

adb reverse tcp:8000 tcp:8000

Basta inserirlo nel terminale Android Studio.

Fondamentalmente imposta un proxy inverso in cui un server http in esecuzione sul telefono accetta connessioni su una porta e li collega al computer o viceversa.


0

Non lo so, forse questo argomento è già risolto, ma quando ho provato di recente a farlo sul computer Windows, ho riscontrato molte difficoltà. Quindi la mia soluzione era davvero semplice. Ho scaricato questo soft http://www.lenzg.net/rinetd/rinetd.html seguendo le loro istruzioni su come effettuare il port forwarding e quindi il mio dispositivo Android collegato correttamente per realizzare il progetto asp.net localhost e fermato sul mio punto di rottura.

il mio file rinetd.conf:

10.1.1.20 1234 127.0.0.1 1234
10.1.1.20 82 127.0.0.1 82

Dove 10.1.1.20 è il mio IP localhost, 82 e 1234 le mie porte Inoltre ho il file di bagno desiderato per una vita facile yournameofbathfile.bat, metti quel file dentro rinedfolder. Il mio file bagno:

rinetd.exe -c rinetd.conf

Dopo aver avviato questo software, avvia il tuo server aps.net e prova ad accedere dal dispositivo Android o da qualsiasi dispositivo nella tua rete locale (ad esempio Computer ABC avvia lo stucco) e vedrai che tutto funziona. Non è necessario andare alle impostazioni del router o fare altre cose complicate. Spero che questo ti possa aiutare. Godere.


-1

Un'altra soluzione alternativa è ottenere un dominio gratuito da no-ip.org e indirizzarlo al tuo indirizzo IP locale. Quindi, invece di utilizzare http://localhost/yourwebservicepuoi provarehttp://yourdomain.no-ip.org/yourwebservice

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.