У меня была такая же неприятная проблема. Наконец-то я нашел то, что работает для меня: убедиться, что localhosts
разрешается правильно (и действительно явно).
Проверьте, работает ли он, когда ваш компьютер для разработки не подключен к сети (без WiFi, без сетевых кабелей). Если в этих условиях действительно работает , возможно, вам необходимо убедиться, что адреса разрешаются в localhost
правильно. Сообщения, которые DDMS и adb.exe используют для отладки и связи с виртуальной машиной, должны правильно разрешаться на localhost
на вашем компьютере. (Да, странно, что другие команды, использующие DDMS и adb, работают нормально, а отладка - нет. Похоже, что что-то в DDMS или adb нужно стандартизировать, чтобы они работали в одинаковых условиях.)
Если вам нужно убедиться, что все разрешается в localhost
правильно:
1) Убедитесь, что эта строка находится в вашем /Windows/System32/drivers/etc/hosts
[windows] (или etc/hosts
[* nix] файле:
127.0.0.1 localhost
(у вас может быть любое количество пробелов между "127.0.0.1" и "localhost")
2) Если это не сработает, возможно, вам также понадобится добавить IPv4-адрес вашего ПК в файл hosts и разрешить его в localhost
. (Вы можете узнать IPv4-адрес вашего компьютера с помощью команды ipconfig
.) Если, например, IPv4-адрес вашего компьютера равен 192.168.1.100
, вы добавите строку
192.168.1.100 localhost
в ваш файл hosts. (Вы можете добавить его ниже строки "127.0.0.1 localhost" в файле.)
В моем файле hosts было (1), но оно все еще не работало (если только мой компьютер не был подключен к сети). Я попробовал (2) немного догадаться, и это сработало для меня.
Кстати: вы можете проверить, что adb (и ваш эмулятор, если вы используете один) прослушивает порты, используя команду netstat -b
. (Обратите внимание, что в Win7 вам необходимы права администратора для опции -b
. Я открываю командное окно, используя «Запуск от имени администратора».)