Zmarnowałem cały dzień wypróbowując różne rozwiązania unoszące się w SO i innym wymienionym miejscu, aby włączyć Wi-Fi na emulatorze Androida, ale bezskutecznie. Czy ktoś może mi pomóc dowiedzieć się, jak włączyć Internet na moim emulatorze Androida?
Mam Nexus 5X API 27, a celem jest Android 8.1 (Google Play) i Nexus 5 API P, a celem jest Android 7.1.1.
Uważam, że powinien istnieć sposób, aby włączyć na nim Internet, bo inaczej cały punkt dostarczania wirtualnego Wi-Fi na emulatorze wydaje się być marnotrawstwem.
Używam systemu Mac OS HS 10.13.4 bezpośrednio połączonego z routerem bez serwera proxy.
Próbowałem nawet usunąć wszystkie AVD i ponownie je zainstalować. Próbowałem nawet zainstalować najnowszego Pixela 2 z Oreo Android 8.1
Wydaje się, że nic nie działa. Czy ktoś napotkał ten problem i znalazł rozwiązanie?
Każda pomoc byłaby bardzo pomocna
Dzięki, Vikram
Aktualizacja: Kiedy podłączam komputer przez telefon jako hotspot wifi, emulator ma dostęp do Internetu przez Wi-Fi, ale kończy się niepowodzeniem, gdy podłączam komputer do routera domowego.
źródło
Odpowiedzi:
Poniżej podano rozwiązania dla systemów Windows i Mac, ale podobne rozwiązania będą działać na każdym systemie operacyjnym:
W systemie Windows
Ustaw preferowane i alternatywne serwery DNS jako (zrzut ekranu poniżej):
8.8.8.8 8.8.4.4
Na komputerze Mac
Usuń wszystkie wpisy, które tam masz i dodaj te dwa wpisy (zrzut ekranu poniżej):
8.8.8.8 8.8.4.4
Uwaga: w przypadku użytkowników komputerów Mac, jeśli pole wpisów jest wyłączone i nie możesz go edytować, kliknij ikonę „Zablokuj” w dolnej części tego okna i wprowadź hasło, aby móc wprowadzić zmiany
Zrestartuj emulator i powinien rozwiązać:
Zrzuty ekranu:
Edycja: Jest to poprawka w sytuacji, gdy wifi emulatora zmieniło DNS na jakiś niedziałający DNS. Chociaż działa to przez większość czasu, mogą istnieć inne przyczyny, których to rozwiązanie może nie naprawić.
źródło
Moje rozwiązanie w systemie Mac OSX 10.13
Czytałem o tym, że jest to spowodowane włączeniem karty LAN i Wi-Fi, a niektóre podejścia wydawały mi się skomplikowane, więc po prostu spróbowałem tego i zadziałało:
źródło
@TheBaj: Odkryłem problem z tym i naprawiłem go. Problem polega na tym, że gdy jesteś podłączony przez router, androidwifi w twoim emulatorze używa ustawień i ustawia DNS na coś innego niż 8.8.8.8, czyli Google DNS (zakładam, że jest to trochę obowiązkowe ustawienie dla androidwifi, aby uzyskać dostęp do internetu dostęp). Ale jeśli zmienię DNS w ustawieniach sieci, wtyczka Google-services, która pobiera twoje zależności, zwłaszcza ta, z której jest pobierana
jcenter()
, nie zostanie pobrana, a zatem twoja synchronizacja się nie powiedzie, co ostatecznie zakończy się niepowodzeniem twojej kompilacji.Tak więc sztuczka polega na tym, że masz skonfigurowany Google DNS (8.8.8.8) w ustawieniach sieci po domyślnych ustawieniach routera - ta część zajmuje się pobieraniem zależności z
jcenter()
oraz synchronizacją i budowaniem powiodło się.Teraz uruchom emulator za pomocą
emulator @Nexus_5X_API_27 -dns-server 8.8.8.8
polecenia z terminala, co zmusza emulator do używania 8.8.8.8 jako swojego DNS, a emulator będzie miał internet.Pracuję nad natywną aplikacją, więc dla mnie Android Studio jest niepotrzebne i skonfigurowałem mój bashrc, aby uruchamiał różne emulatory w następujący sposób,
function emunex5 { emulator @Nexus_5X_API_27 -dns-server 8.8.8.8 } function emunex6 { emulator @Nexus_6_API_27 -dns-server 8.8.8.8 } function emupix { emulator @Pixel_XL_API_27 -dns-server 8.8.8.8 }
Więc z jednego terminala uruchamiam wybrany emulator, a następnie uruchamiam kompilację na innym terminalu, który uruchamia moją aplikację na uruchomionym emulatorze, a MÓJ FREAKING EMULATOR MA DOSTĘP DO INTERNETU. :)
Wypróbuj to i mam nadzieję, że to pomoże.
Dzięki, Vikram
źródło
%HOME%\AppData\Local\Android\Sdk\emulator
- tutaj to znalazłem.Miałem ten sam problem i wykonanie poniższych czynności rozwiązało go.
Kroki:
źródło
Rozwiązałem z Google dns na karcie sieciowej
8.8.8.8
i8.8.4.4
źródło
Wyczyść dane, klikając prawym przyciskiem myszy listę urządzeń wirtualnych, a zimny rozruch działa dla mnie.
źródło
Cóż, zrobiłem to w ten sposób:
Kroki, aby dodać ręczne proxy:
Zrzut ekranu odniesienia:
Mam nadzieję, że to pomoże.
źródło
Pomogło mi to: W systemie Mac OSX (dla mnie Catalina) problem jest spowodowany tym, że emulator automatycznie podnosi ten
nameserver
, patrząc/etc/resolv.conf
i wybierając pierwszy, w moim przypadku adres IPv6. ŹródłoPo prostu edytuj plik (
$ sudo vi /etc/resolv.conf
) i przenieś adres IPv4 (192.168.1.1
w moim przypadku) na pierwszy, przed adresami IPv6.Poważnie, to było to. Od Demetriosa Christophera
źródło
Może to komuś pomoże. Wypróbowałem wszystkie powyższe rozwiązania. Zmiana DNS, zimne uruchamianie, itp. Po kilku godzinach prób i błędów przeszedłem do oficjalnej dokumentacji, która mówi, że emulator przejmuje konfigurację DNS. maszyny hosta w czasie uruchamiania emulatora. Na moim komputerze zainstalowano oprogramowanie VMWare, które instaluje kilka kart sieciowych. Tak, po prostu zmienił config DNS. wszystkich adapterów (w tym adapterów VMWare) i uruchomił mój emulator na zimno. OMG, problem, który nie znikał przez wiele godzin, właśnie się poprawił!
Dziwne jest to, że przełączyłem z powrotem konfigurację DNS. wszystkich adapterów na auto i ponownie uruchomiłem mój emulator na zimno. WiFi nadal działa dobrze. System operacyjny: Windows 10.
źródło
100% działa na Windows 10
Android AVD jest dostarczany z Google DSN skonfigurowanym w emulatorach. Więc musimy ustawić to samo na udostępnianie w sieci, aby uzyskać dostęp do tego samego.
Adresy IP Google Public DNS Adresy IP Google Public DNS (IPv4) są następujące:
8.8.8.8
8.8.4.4
Adresy Google Public DNS IPv6 są następujące:
2001: 4860: 4860 :: 8888 2001: 4860: 4860 :: 8844 Możesz użyć adresu jako podstawowego lub pomocniczego serwera DNS.
Więcej informacji
Tutaj pokazuję ustawienie kroków IP v4
Uwaga: jeśli VPN jest włączony, nie będzie działać, aby rozłączyć VPN
źródło
W systemie Mac OSX (dla mnie Catalina) problem jest spowodowany tym, że emulator automatycznie wybiera serwer nazw, patrząc na /etc/resolv.conf i wybierając pierwszy, w moim przypadku adres IPv6. Źródło: https://developer.android.com/studio/run/emulator-networking#dns
Po prostu edytuj plik (sudo vi /etc/resolv.conf) i przenieś adres IPv4 (w moim przypadku 192.168.1.1) na pierwszy, przed adresami IPv6. Poważnie, to było to.
źródło
W systemie macOS:
źródło
W systemie Windows:
Po przetestowaniu niektórych rozwiązań znalazłem swoje, klikając strzałkę w dół na AVD, opcję „Cold Boot Now”. po uruchomieniu Android miał dostęp do internetu, więc mi się udało.
źródło
Rozwiązanie dla systemu Windows:
emulator -avd Nexus_4_API_29 -gpu host -dns-server 8.8.8.8
. TutajNexus_4_API_29
będzie nazwa twojego urządzenia emulatora (możesz znaleźć listę urządzeń w Android Studio -> AVD Manager). To polecenie uruchomi określone urządzenie, a WIFI będzie miało połączenie z Internetem.Mam nadzieję że to pomoże.
źródło
Co mi pomogło:
źródło
Jeśli miejsce wifi uległo zmianie, po prostu uruchom ponownie emulator, aby emulator odświeżył ustawienia sieciowe z usługi dhcp.
źródło
Zresetowanie ustawień sieciowych w emulatorze Androida rozwiązuje ten problem.
źródło
U mnie zadziałał zwykły zimny rozruch, nie ma potrzeby uruchamiania innych emulatorów ani czyszczenia pamięci.
Po prostu zamknij emulator i wybierz opcję „Cold Boot Now” z menu rozwijanego obok przycisku odtwarzania. Jeśli nie, szukaj żadnej z bardziej wszechstronnych opcji wymienionych tutaj, ale proponuję zawsze zacząć od najprostszego rozwiązania.
Powodzenia!
źródło
Może spróbuj użyć sieci LAN, jeśli jest dostępna. To działa jak urok dla mnie ...
źródło
Dla nowych użytkowników wyszukiwarek: Czasami VPN jest Twoim rozwiązaniem Zmiana ustawień sieci nie zawsze jest możliwa z powodu problemów z siecią. Jeśli masz adresy IP, na które Google nie odpowiada w tych regionach, Twoje rozwiązanie korzysta z VPN Użyj odpowiedniego VPN (VPN, przez który możesz zaktualizować swoje studio Android) .Gdy Twój VPN jest włączony, uruchom urządzenie AVD ( Oczywiście poziom api twojego emulatora jest ważny, na przykład nie mam żadnego problemu z api 22 ale dla api 28 potrzebne jest użycie VPN!) To było moje doświadczenie z internetem emulatora Androida.
źródło
Zmień lokalizację emulatora i ustaw go na swoją bieżącą lokalizację.
Kroki : -
źródło