Eclipse'deki Android Emulator'dan http: // localhost web sunucuma nasıl bağlanırım


485

Eclipse'ın Android öykünücüsünde http://localhostveya adresindeki localhost web sunucusu sayfama bağlamak için ne yapabilirim http://127.0.0.1?

Denedim, ancak emülatör hala yerel ana bilgisayar için bir Google araması gibi isteğimi alıyor veya daha kötüsü, web sunucum normal olarak çalışırken sayfayı bulamadığını söylüyor.


Bu soru Android Emulator ile ilgilidir ve yalnızca bu durum için geçerli çözümlere sahiptir . Fiziksel bir Android cihaz kullanırken bu sorunla karşılaşırsanız , lütfen bunun yerine stackoverflow.com/questions/4779963/…
Chris Stratton

Yanıtlar:


819

Localhost, kodun üzerinde çalıştığı cihaza, bu durumda emülatöre atıfta bulunur.

Android simülatörünü çalıştıran bilgisayara başvurmak istiyorsanız, bunun yerine 10.0.2.2 IP adresini kullanın.

resim açıklamasını buraya girin

Buradan daha fazla bilgi edinebilirsiniz .


12
neden diğer soruya atıfta bulunuyorsunuz? sadece Link Android emülatörü Ağ
Marvin Emil Brach

Bağlantıyı gösterdiğin için teşekkürler. Sanırım cevap gönderildiğinde orada değildi.
Primal Pappachan

1
@primpap: IP adresi yerine makine adını kullanabilir miyim ??
KJEjava48

@primpap Mobil hata ayıklama ile çalışmıyor. Başka var mı? Veya 10.0.2.2 emülatör üzerinde çalışıyor ama usb hata ayıklama için mobil bağlandığında çalışmıyor çünkü bir yerde hata yapıyorum. ?
Jawad Zeb

5
Bu çözüm, yalnızca buradaki belirli soruda istendiği gibi emülatörlerde çalışır . Fiziksel bir Android cihazda hata ayıklamak için sunucunun gerçek IP adresini veya adını kullanmak zorunda kalacaklar, sadece bu özel emülatör takma adını kullanamazlar. Bu cevap iyidir - ancak okuyucular durumlarının uygulanabilir olduğu duruma dikkat etmelidir .
Chris Stratton

156

kullanım 10.0.2.2Varsayılan AVD ve 10.0.3.2için.


Peki sadece 10.0.3.2ana bilgisayar dosyamıza ekliyor muyuz ?
ayjay

29

10.0.2.2'yi ev makinemde başarıyla kullandım, ancak işte işe yaramadı. Saatlerce dalga geçtikten sonra, Android Sanal Cihaz (AVD) yöneticisini kullanarak yeni bir emülatör örneği oluşturdum ve sonunda 10.0.2.2 çalıştı.

Diğer emülatör örneğinde neyin yanlış olduğunu bilmiyorum (platform aynıydı), ancak 10.0.2.2 işe yaramazsa, yeni bir emülatör örneği oluşturmayı deneyin.


4
Ne yazık ki yeni AVD örneği oluşturduktan sonra bile işe yaramıyor. Sen ne önerirsin? Her şeyi yeniden yüklemek için?
Vlado Pandžić

23

Bağlantı noktası numaranızın http://10.0.2.2:8080/nerede 8080olduğunu deneyin . Mükemmel çalıştı. Sadece denerseniz 10.0.2.2işe yaramaz. Bağlantı noktası numarası eklemeniz gerekir. Ayrıca Microsoft IIS yüklüyse, bu özelliği kontrol panelinden kapatmayı deneyin (herhangi bir Windows işletim sistemi kullanıyorsanız) ve sonra yukarıda belirtildiği gibi deneyin.


2
Sayfalar IIS'de barındırılıyorsa ne olur?
maracuja-juice

@Marimba, IIS sunucunuzun hangi bağlantı noktasında hizmet verdiğini
anlayın ve 10.0.2.2:your_iis_port'a

Bu tamamlanmış bir dize ve sadece benim android 8.1 öykünücü üzerinde çalıştı
CodeToLife

10

belgelere göre:

10.0.2.2 - Ana bilgisayar geri döngü arayüzünüz için özel takma ad (ör. Geliştirme makinenizde 127.0.0.1)

kontrol Emulator Ağ emülatörü ağ üzerinde daha fazla hileler için.



3

Emülatör "Nox App Player" için sistem ana bilgisayar IP adresini bulmam gerekiyordu. İşte böyle anladım 172.17.100.2.

  1. Android Terminal Emulator'u App Store'dan yükledi
  2. Sayı ip link showtüm ağ arayüzleri göstermeye komutu. Et1 arayüzü özellikle ilgi çekiciydi
  3. Sorun ifconfig eth1komutu, ağı şu şekilde gösterir:172.17.100.15/255.255.255.0
  4. Adreslere ping göndermeye başlayın 172.17.100.1, `` 172.17.100.2 '' yi vurdu. Bir güvenlik duvarının müdahale edip etmeyeceğinden emin değilim ama benim durumumda olmadı

Belki bu, başka birisinin diğer emülatörler için çözmesine yardımcı olabilir.


1

Windows'daysanız, erkek sisteme gidip yazabilirsiniz. ipconfigmakinenize hangiatandığını kontrol edebilirsiniz.


Diğer yanıtlarda belirtilen ana bilgisayar geri döngü arabirimi için özel diğer adı kullanabileceğiniz için, bir emülatörden hata ayıklarken bu gerekli değildir. Ancak fiziksel bir android cihazdan hata ayıklama yapıyorsanız, evet, test sunucunuzun gerçek adresini belirlemeniz ve bunu kullanmanız gerekir.
Chris Stratton

1

localhost:8000Emülatörünüzü her çalıştırdığınızda (yalnızca Mac'te test edilmiştir) aşağıdaki komutu çalıştırarak makinenizin localhost'una bağlanmak için kullanabilirsiniz :

adb reverse tcp:8000 tcp:8000

Sadece Android Studio terminaline koyun.

Temel olarak, telefonunuzda çalışan bir http sunucusunun bir bağlantı noktasındaki bağlantıları kabul ettiği ve bunları bilgisayarınıza ya da tam tersi olarak bağladığı bir ters proxy kurar.


0

Bilmiyorum, belki bu konu zaten çözüldü, ancak son zamanlarda Windows makinesinde yapmayı denediğimde, birçok zorlukla karşılaştım. Benim çözümüm gerçekten çok basitti. Bu yumuşak indirdim http://www.lenzg.net/rinetd/rinetd.html port yönlendirme yapmak için talimatlarını ve sonra başarıyla android cihaz asp.net localhost projesi yapmak için bağlı ve kırılma noktasında durdu.

rinetd.conf dosyam:

10.1.1.20 1234 127.0.0.1 1234
10.1.1.20 82 127.0.0.1 82

10.1.1.20 nerede benim localhost ip, 82 ve 1234 portlarım Ayrıca ben kolay yaşam için craeted banyo dosyası var yournameofbathfile.bat, bu dosyayı rinedfolder içine koymak. Banyo dosyam:

rinetd.exe -c rinetd.conf

Bu yazılımı başlattıktan sonra, aps.net sunucunuzu başlatın ve android cihazdan veya yerel ağınızdaki herhangi bir cihazdan (örneğin Bilgisayar ABC macun başlar) erişmeye çalışın ve her şeyin işe yaradığını göreceksiniz. Yönlendirici ayarına veya başka karmaşık şeyler yapmaya gerek yok. Umarım bu sana yardımcı olmuştur. Zevk almak.


-1

Başka bir geçici çözüm, no-ip.org adresinden ücretsiz bir alan adı almak ve yerel IP adresinize yönlendirmektir. Ardından, kullanmak yerine http://localhost/yourwebservicedeneyebilirsinizhttp://yourdomain.no-ip.org/yourwebservice

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.