Як підключитися до мого веб-сервера http: // localhost від Android Emulator в Eclipse


485

Що я можу зробити в емуляторі Android Eclipse, щоб підключити його до моєї сторінки веб-сервера localhost за адресою http://localhostабо http://127.0.0.1?

Я спробував це, але емулятор як і раніше сприймає мій запит, як пошук Google для localhost, або ще гірше, він говорить, що він не знайшов сторінку, коли мій веб-сервер нормально працює.


Це питання про Android Emulator і має рішення , яке застосовується до цієї нагоди тільки . Якщо ви стикаєтеся з цією проблемою під час використання фізичного пристрою Android , перегляньте натомість stackoverflow.com/questions/4779963/…
Chris Stratton

Відповіді:


819

Localhost посилається на пристрій, на якому працює код, в цьому випадку емулятор.

Якщо ви хочете звернутися до комп'ютера, на якому працює тренажер Android, замість цього використовуйте IP-адресу 10.0.2.2 .

введіть тут опис зображення

Більше ви можете прочитати тут .


12
чому посилаючись на інше питання? просто додайте емулятор
Marvin Emil Brach

Дякуємо, що вказали на посилання. Гадаю, його там не було, коли відповідь була розміщена.
Primal Pappachan

1
@primpap: Чи можу я використовувати ім'я машини замість ip-адреси ??
KJEjava48

@primpap це не працює з мобільною налагодженням. Чи є ще якісь? Або я десь помиляюся, бо 10.0.2.2 працює на емуляторі, але не працює, коли я підключаю мобільний для налагодження usb. ?
Jawad Zeb

5
Це рішення працює лише на емуляторах , про що йдеться у конкретному запитанні тут. Тим, хто налагоджує на фізичному пристрої Android, доведеться використовувати фактичну IP-адресу або ім’я сервера, вони не можуть використовувати цей спеціальний псевдонім, що використовується лише для емулятора. Ця відповідь хороша - але читачам потрібно бути обережними, щоб їх ситуація була такою, у якій вона застосовна .
Кріс Страттон


29

Я успішно використовував 10.0.2.2 на домашній машині, але на роботі він не працював. Після годин обдурення я створив новий екземпляр емулятора за допомогою віртуального пристрою Android менеджера (AVD), і нарешті 10.0.2.2 спрацював.

Я не знаю, що сталося з іншим екземпляром емулятора (платформа була такою ж), але якщо ви виявите, що 10.0.2.2 не працює, спробуйте створити новий екземпляр емулятора.


4
На жаль, це не працює для мене навіть після створення нового екземпляра AVD. Що ти пропонуєш? Перевстановити все?
Владо Панджич

23

Спробуйте, http://10.0.2.2:8080/де 8080ваш номер порту. Це спрацювало чудово. Якщо ви просто спробуйте, 10.0.2.2це не вийде. Вам потрібно додати номер порту до нього. Також якщо Microsoft IIS встановлений, спробуйте вимкнути цю функцію з панелі управління (якщо використовується будь-яка ОС Windows), а потім спробуйте, як зазначено вище.


2
Що робити, якщо сторінки розміщені на IIS?
маракуя-сік

@Marimba просто з’ясуйте, на якому порті працює ваш сервер IIS, а потім перейдіть
StoneLam

це завершена рядок і єдиний працював на моєму емуляторі Android 8.1
CodeToLife

10

згідно документації:

10.0.2.2 - Спеціальний псевдонім для вашого хост-інтерфейсу (наприклад, 127.0.0.1 на вашій розробній машині)

перевірте мережу Емулятор, щоб дізнатися більше про хитрощі в роботі емуляторів.



3

Мені потрібно було визначити IP-адресу системного хоста для емулятора "Nox App Player". Ось як я зрозумів, що це було 172.17.100.2.

  1. Встановлено емулятор терміналів Android з магазину додатків
  2. Проблема ip link showкоманди , щоб показати всі мережеві інтерфейси. Особливий інтерес викликав інтерфейс eth1
  3. ifconfig eth1Команда видачі , показує чистий як172.17.100.15/255.255.255.0
  4. Почніть пінг-адреси, починаючи з 172.17.100.1, потрапив на `172.17.100.2 '. Не впевнений, чи заважатиме брандмауер, але це не було в моєму випадку

Можливо, це може допомогти комусь іншому зрозуміти це для інших емуляторів.


1

Якщо ви знаходитесь у Windows, ви можете перейти до символьної системи та написати ipconfig та перевірити, який ip призначений для вашої машини.


Це не обов'язково при налагодженні емулятора, оскільки ви можете використовувати спеціальний псевдонім для інтерфейсу хост-зворотного звороту, про який йдеться в інших відповідях. Однак якщо налагодження з фізичного пристрою Android, то так, вам потрібно визначити фактичну адресу вашого тестового сервера і використовувати це.
Кріс Страттон

1

Ви можете фактично використовувати localhost:8000для підключення до localhost вашого комп'ютера, виконуючи команду нижче під час кожного запуску емулятора (тестується лише на Mac):

adb reverse tcp:8000 tcp:8000

Просто поставте його до терміналу Android Studio.

В основному він встановлює зворотний проксі-сервер, в якому http-сервер, що працює на вашому телефоні, приймає з'єднання через порт і підключає їх до комп'ютера або навпаки.


0

Не знаю, можливо, ця тема вже вирішена, але коли я нещодавно спробував це зробити на машині Windows, я зіткнувся з безліччю труднощів. Тож моє рішення було справді простим. Я завантажив цей м'який http://www.lenzg.net/rinetd/rinetd.html, слідував їх інструкціям про те, як зробити переадресацію портів, а потім успішно підключився мій пристрій Android, щоб зробити проект asp.net localhost і зупинився на моєму злому.

мій файл rinetd.conf:

10.1.1.20 1234 127.0.0.1 1234
10.1.1.20 82 127.0.0.1 82

Де 10.1.1.20 - мій локальний хост ip, 82 та 1234 - мої порти Також у мене створений файл ванночки для легкого життя yournameofbathfile.bat, покладіть цей файл всередину rinedfolder. Мій файл для ванни:

rinetd.exe -c rinetd.conf

Після запуску програмного забезпечення запустіть сервер aps.net і спробуйте отримати доступ з Android-пристрою або будь-якого пристрою у вашій локальній мережі (наприклад, Computer ABC запускає шпаклівку), і ви побачите, що все працює. Не потрібно переходити до налаштування роутера або робити якісь інші складні речі. Я сподіваюся, що це вам допоможе. Насолоджуйтесь.


-1

Інше рішення - отримати безкоштовний домен від no-ip.org та вказати його на вашу локальну ip-адресу. Потім замість використання http://localhost/yourwebserviceможна спробуватиhttp://yourdomain.no-ip.org/yourwebservice

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.