Отображения Url в файле hosts в эмуляторе игнорируются
Я использую эмулятор genymotion и вытаскиваю из него файл hosts, используя
adb remount
adb pull/system/etc/hosts C:\Users\Rkn09\Desktop\hosts
и я добавил новое отображение как
192.168.0.115 xxx.mydomain.com, и я вернул его в эмулятор, используя
adb push C:\Users\Rkn09\Desktop\hosts/system/etc/hosts
но когда я делаю запрос xxx.mydomain.com, он не перенаправляет на локальный компьютер в локальной сети 192.168.0.115. Я даже проверил файл hosts с помощью cat/etc/hosts, и он имеет мое сопоставление, может ли кто-нибудь помочь мне с этой проблемой.
PS: тот же процесс отлично работает в Mac OS X EI Captain, я получаю эту проблему в windows7
Ответы
Ответ 1
У меня была та же проблема. Следующее разрешило это:
- Убедитесь, что у вас есть пустая строка после последней записи хостов
файл
- Если вы используете вкладки в файле hosts, замените их пробелами
Перезагрузите Android и повторите попытку:
adb reboot
Ответ 2
hosts
файл должен быть написан с использованием стиля окончания строки linux.
Это невозможно сделать в "Блокноте", а также в Wordpad. Попробуйте установить другой редактор, который поддерживает эту функцию, и убедитесь, что вы сохранили файл hosts
правильно.
(Я пробовал AkelPad, но Nodepad ++ предлагает ту же функцию)
Предположительно, независимо от того, что такое кодировка. Оба Windows-1252 (ANSI)
и utf-8
работали.
Сделав все изменения, нажмите hosts
файл на устройство:
adb remount
adb push hosts /system/etc/hosts
Убедитесь, что у вас есть правильный файл hosts
, и он загружен и работает ли он:
adb shell cat /system/etc/hosts
adb shell ping my.domain.com
Откройте браузер с устройства Genymotion и убедитесь, что все работает, набрав:
http://my.domain.com
При необходимости вы можете добавить порт
http://my.domain.com:1234
Вам не нужно перезагружать Android-устройство.
Если проблема не исчезла, убедитесь, что она связана с самим файлом hosts
путем прямого вызова ip-адреса:
adb shell ping 192.168.x.x
Если он работает, то еще раз проверьте окончание строк в файле. Некоторые текстовые редакторы могут смешивать их, и возможность использовать окончание строки Unix довольно часто связана только с новыми файлами.
Ответ 3
По-видимому, ни один из вышеперечисленных решений не помог вам, что я ожидал. Я не знаю, как дать вам пошаговое решение, но я надеюсь, что мой ответ поможет вам.
Эмулятор (обычно) находится в совершенно другой подсети.
Эмуляционные системы создают виртуальный сетевой адаптер для подключения эмулятора к хост-машине, поэтому вам нужно указать адрес вашего "виртуального сетевого адаптера" в "файл hosts" вместо ip-адреса "физического сетевого адаптера", хост-машина ".
Вот как он выглядит в сети
Computer Emulator
192.168.0.115
mask: 255.255.255.0
192.168.6.1<-------------------------->192.168.6.2
mask: 255.255.255.0
Итак, для эмулятора 192.168.0.115 не существует
поэтому в файле hosts указывается адрес 192.168.6.1 (или любой другой адрес вашего виртуального сетевого адаптера), в то время как ваш веб-браузер прослушивает все возможные локальные адреса (то есть 0.0.0.0:80) или меняет маску подсети соответственно. Я думаю, что первое будет хорошим решением.