Как я могу позволить эмулятору Android общаться с локальным хостом?

Я запускаю приложение для Android на эмуляторе. Это приложение пытается загрузить html-файл с помощью API веб-просмотра.

У меня также есть простой http-сервер, работающий на том же компьютере в каталоге, где я хочу обслужить запрос, используя следующую команду python:

python -m SimpleHTTPServer 800

Однако я не смог получить доступ к этой ссылке ни через приложение, ни через браузер на эмуляторе:

http://localhost:800/demo.html

Пожалуйста, дайте мне знать, если я что-то упустил.


person Vicky    schedule 03.03.2011    source источник


Ответы (4)


Используйте адрес 10.0.2.2 вместо localhost.

person Piva    schedule 03.03.2011
comment
Ага. Дополнительные сведения о работе в сети с помощью эмулятора Android см. на странице developer.android.com. /guide/developing/devices/ . - person Yoni Samlan; 03.03.2011

localhost — это короткий путь, чтобы сообщить «чему бы то ни было» поговорить с самим собой. Итак, вы говорите эмулятору искать веб-сервер, работающий в эмуляторе.

Вместо того, чтобы пытаться подключиться к локальному хосту, найдите IP-адрес своего компьютера и используйте его.

person sorens    schedule 03.03.2011
comment
вообще да, напр. если вы используете виртуальную машину. но в эмуляторе андроида это жестко запрограммировано 10.0.2.2 как сказал Пива - person avalancha; 04.12.2013

На самом деле localhost относится к самому каталогу эмуляторов.

Используйте свой системный ip для доступа к ссылке

person Atmaram    schedule 03.03.2011

Лучшее решение - вообще не использовать эмулятор. Это медленно и полно ошибок. Попросите вашего работодателя купить устройство или два.

person Saideira    schedule 03.03.2011
comment
Далеко не «лучшее» решение. Что, если вы фрилансер и у вас нет средств на покупку одного или двух устройств? - person Jonathan Miller; 25.10.2012