Emulator Androida nie może uzyskać dostępu do Internetu

254

Wiem, że podobne pytania były zadawane wcześniej, ale mój problem jest nowy dopiero po zainstalowaniu Android Studio 2.3, najnowszej wersji w marcu 2017 r. Mam kilka lat doświadczenia w tworzeniu aplikacji na Androida i nigdy wcześniej nie spotkałem się z tym problemem. Po aktualizacji do wersji 2.3 Androida Studio mój emulator nie jest już w stanie uzyskać dostępu do Internetu. Nawet odinstalowałem / ponownie zainstalowałem Android Studio 2.3 od zera i utworzyłem nowy emulator, i wciąż pojawia się ten sam błąd. To nie jest problem z aplikacją. Nie mogę nawet uzyskać dostępu do Internetu z Chrome i nie miałem tego problemu w zeszłym tygodniu. Otrzymany komunikat mówi, że nie można znaleźć adresu DNS serwera - DNS_PROBE_FINISHED_BAD_CONFIG. Jedyną rzeczą, która zmieniła się na moim komputerze w ostatnim tygodniu, jest nowa wersja Androida oraz ewentualnie aktualizacje systemu Windows 10. I tak, mój komputer ma dostęp do Internetu. Poniżej znajduje się obraz mojego emulatora, gdy próbuję użyć Chrome do wyszukiwania „Google”. emulator z komunikatem o błędzie

John Moore
źródło
Odkryłem dodatkowy problem z Android Studio 2.3, który nie jest związany z dostępem do Internetu, ale może być w jakiś sposób związany z powyższym. Gdy Android Studio jest otwarty na projekt i działa emulator, mogę dobrze uruchomić aplikację na emulatorze. Ale jeśli otworzę Android Device Monitor, to powie mi, że emulator jest w trybie offline. Następnie, jeśli zamknę Monitor urządzeń z Androidem i wrócę do Android Studio, to również powie mi, że emulator jest w trybie offline. Muszę zamknąć i ponownie uruchomić emulator, zanim Android Studio będzie mógł go ponownie znaleźć. Ten problem, podobnie jak powyższy, jest powtarzalny.
John Moore,
Kolejna aktualizacja. Zainstalowałem Android Studio 2.3 na innym, starszym / wolniejszym komputerze z systemem Windows 10 i problem nadal występuje. Ponadto w pewnym momencie pomyślałem, że problem może być związany ze złą poprawką Microsoft WPD, ale starszy komputer nie ma zainstalowanej poprawki. Ponadto po kilku nieudanych próbach udało mi się usunąć złą łatkę z głównego komputera i nadal nie udało mi się uruchomić Chrome na emulatorze. W tym momencie jestem bardziej pewien, że problem dotyczy Androida Studio 2.3.
John Moore,
Przeczytaj to, jeśli korzystasz z systemu Windows: stackoverflow.com/a/43066809/2827025
anemomylos
1
Myślę, że to pytanie jest nadal dobre, ponieważ jest bardziej „ogólne” niż cytowane, a także dlatego, że wspomina o aktualizacji Androida Studio. Od kwietnia 2018 r. Właśnie uaktualniłem go do wersji 3.1.2 i nagle zaczął występować ten problem.
czyszczenie
9
Nie rozumiem, dlaczego musimy marnować tyle czasu na tego rodzaju problemy. Zespół Androida ... napraw to!
r3dm4n

Odpowiedzi:

371

Zmień adres DNS swojej sieci na 8.8.8.8 (DNS Google) lub inny z preferencji:

Mac OS X:
  • Otwórz „Preferencje systemowe”
  • Kliknij „Sieć”
  • Wybierz sieć, do której komputer jest podłączony, i kliknij „Zaawansowane”
  • Wybierz „DNS”, wybierz przycisk „+”, wpisz „8.8.8.8” (DNS Google) lub, jeśli wolisz OpenDNS, „208.67.222.222”
  • Wybierz „Ok” i „Zastosuj”

Windows i Linux:

https://developers.google.com/speed/public-dns/docs/using


Następnie zamknij emulator i uruchom go ponownie.

Ana Paula
źródło
Musiałem postępować zgodnie z tym przewodnikiem dla systemu Windows: developers.google.com/speed/public-dns/docs/using, ale działało to również dla mnie. Chyba z jakiegoś powodu moja sieć domowa nie została poprawnie ustawiona dla emulatora.
Chud37,
10
Jeśli nie chcesz, aby Twój ruch DNS przechodził przez Google, zamiast tego użyj ustawień OpenDNS. 208.67.222.222 i 208.67.220.220
Justin Noel,
5
Zrobiłem to samo, ale potem musiałem zrestartować emulator, aby działał, dzięki za wskazówkę!
Steven Elliott,
30
Przekieruj cały ruch DNS systemu hosta do Google, co za odpowiedź -.-
fl034
2
Możesz także zamiast „brutalnego zmuszania” całego komputera do korzystania z nowego serwera DNS (a następnie domyślnie dziedziczenie tych zmian przez emulator) wystarczy zmienić ustawienia DNS dla emulatora ... Istnieje wiele sposobów, aby to zrobić . Więcej szczegółów na temat różnych opcji dostępnych tutaj: stackoverflow.com/questions/2039964/...
trcarden
202

Po wypróbowaniu wielu z tych rozwiązań zamierzałem po prostu usunąć mój obecny AVD i zrobić to ponownie, ale kiedy kliknąłem strzałkę w dół na AVD, zauważyłem „Cold Boot Now”.

Menu AVD

Pod wpływem kaprysu spróbowałem tego. Oto mój emulator znów ma połączenie z Internetem!

EDYCJA: Ok, dla tych, którzy mówią, dlaczego nie wyczyść danych i uruchom ponownie. Czy formatujesz komputer przy każdym ponownym uruchomieniu? Czyszczenie danych na emulatorze przypomina przywracanie ustawień fabrycznych telefonu lub formatowanie dysku twardego na komputerze i ponowną instalację systemu operacyjnego. Nie jest to konieczne, chyba że dane są całkowicie uszkodzone.

Po wyłączeniu emulatora i ponownym uruchomieniu jest to jak przejście komputera w tryb hibernacji lub uśpienia. Pamięć nie jest czyszczona, jest zapisywana.

Wykonanie zimnego rozruchu jest tym samym co ponowne uruchomienie telefonu lub ponowne uruchomienie komputera. Resetuje pamięć i pozwala na ponowne załadowanie. Pozwala to na rozpoczęcie emulacji sieci z czystą pamięcią i prawidłowe połączenie.

Więc nie usuwaj danych. Po prostu zimny rozruch. Jeśli nadal nie działa, wyczyść, ale zapisz to w ostateczności.

Timothy Winters
źródło
8
Naprawiłem to po przejściu z przewodowego na wifi
Lucas
3
Działa również dla mnie w obliczu tego samego problemu podczas przełączania między różnymi kartami sieciowymi. Problem wydaje się polegać na tym, że emulator nadal jest w jakiś sposób podłączony do poprzedniej konfiguracji połączenia, więc kiedy emulator zostanie uruchomiony w trybie Zimnego rozruchu Teraz konfiguracja sieci jest restartowana i wszystko zaczyna działać od nowa. Dzięki za udostępnienie;) !!
Gueorgui Obregon
1
Działa w porządku! ale dlaczego?
ucMedia
1
Czy wycierasz telefon przy każdym ponownym uruchomieniu? Właśnie taki jest zimny start emulatora, zimny restart. To tak samo, jak wyłączenie telefonu i włączenie go z powrotem. Nie ma potrzeby czyszczenia danych z emulatora po zimnym rozruchu, chyba że nadal występują problemy.
Timothy Winters
To działało dla mnie .. Próbowałem innego proxy, próbowałem ponownie uruchomić komputer, stworzyłem inny AVD .. Nie jestem pewien, dlaczego to działało ... ale działało .. !!
Swapnil Kale
122

Znalazłem tymczasowe rozwiązanie dla starego wątku przepełnienia stosu w wersji Upgraded do SDK 2.3 - teraz żadne emulatory nie mają łączności . Pamiętaj, że ten wątek mówi o systemie Android SDK 2.3, a nie Android Studio 2.3. Problem polega na tym, że emulator nie może znaleźć DNS, którego obecnie używa mój komputer, a tymczasowym obejściem jest uruchomienie emulatora z wiersza poleceń i określenie serwera DNS. Jakikolwiek problem wtedy wystąpił, musiał pojawić się ponownie w najnowszej wersji Androida Studio.

Tymczasowe rozwiązanie opisane poniżej rozwiązuje problem z dostępem emulatora do Internetu. Nie rozwiązuje to jednak problemu występującego podczas próby uruchomienia Monitora urządzeń Android. W ten sposób emulator przejdzie w tryb offline, jak opisano powyżej.

Zauważ, że w sdk są dwa pliki o nazwie „emulator.exe” - jeden w sdk \ tools i drugi w sdk \ emulator. Oba mogą działać poniżej, ale używam tego z emulatora sdk \.

Pierwszym krokiem jest ustalenie, gdzie znajduje się zestaw SDK. Zakładając nazwę użytkownika „jdoe” i domyślną instalację Androida Studio w systemie Windows, SDK najprawdopodobniej

C:\Users\jdoe\AppData\Local\Android\sdk

Drugim krokiem jest określenie nazwy AVD (emulatora), który chcesz uruchomić. Komenda

C:\Users\jdoe\AppData\Local\Android\sdk\emulator\emulator.exe -list-avds

pokaże nazwy twoich AVD. Na moim komputerze pokazuje tylko jeden, Nexus_5X_API_25.

Aby uruchomić emulator z wiersza polecenia z określonym serwerem DNS, użyj czegoś takiego:

C:\Users\jdoe\AppData\Local\Android\sdk\emulator\emulator.exe -avd Nexus_5X_API_25 -dns-server 8.8.8.8

W tym przypadku 8.8.8.8 jest serwerem nazw publicznych Google.

Powyższe polecenia można skrócić, jeśli utworzysz odpowiednie zmienne środowiskowe i edytujesz zmienną środowiskową PATH, ale zalecam przy tym ostrożność.

John Moore
źródło
To absolutnie zadziałało dla mnie, ale chciałbym, aby istniał sposób na wyczyszczenie DNS poza linią poleceń.
JaviCasa,
po zapłaceniu 199 $ licencji na Windows Pro, aby uzyskać Hyer-V i po odkryciu, że emulator studia wizualnego nie obsługuje google_api_services, znalazłem to rozwiązanie, które sprawia, że ​​emulator Androida łączy się z Internetem ... Czuję się: |
Mona
2
To całkowicie działa, ale niewiarygodne jest to nadal problem z Android Studio 3.0 (emulator 27.1.12). Może ma to związek z posiadaniem zarówno przewodowych, jak i bezprzewodowych kart sieciowych w systemie z wyłączoną siecią bezprzewodową?
Victor Rendina
Złożyłem błąd w Google i mam nadzieję, że przejrzą komentarze tutaj i rozwiążą problem.
łapy
@paws czy możesz połączyć zgłoszony błąd? Również chcesz go oznaczyć gwiazdką!
amitavk
56

Aktualizacja mojego adaptera WIFI w celu rozwiązania DNS w wersji 8.8.8.8 rozwiązała problem. Zaczęło się to dziać po aktualizacji Apple, która pomieszała adres DNS.

wprowadź opis zdjęcia tutaj

Joao Gavazzi
źródło
13
Nie zapomnij zrestartować emulatora po dokonaniu tej zmiany, jak sugeruje Ana Paula.
Jordan
1
Zobacz mój komentarz powyżej dotyczący używania OpenDNS zamiast Google. stackoverflow.com/questions/42736038/…
Justin Noel,
Nie musi to być wersja 8.8.8.8 ani OpenDNS, każdy działający serwer DNS będzie działał
sudo
29

Po prostu otwórz Menedżera AVD i wyczyść dane tego emulatora, które dla mnie działają.

Hashim Zahid
źródło
1
Musiałem mieć wcześniej zapisane w pamięci podręcznej moje stare połączenie Wi-Fi, ponieważ przeniosłem się do innej lokalizacji Wi-Fi i ten problem zaczął się zdarzać. Wytarłem AVD i uruchomiłem ponownie, a on podniósł Wi-Fi w nowej lokalizacji.
Mike Flynn
26

Ten sam problem wystąpił po aktualizacji. Po otwarciu przeglądarki Chrome w emulatorze nie można było już przejść do google.com.

Znalazłem post na SO, który sugeruje, że problem dotyczy emulatora próbującego użyć odłączonej karty sieciowej. Dla mnie problem występował, gdy byłem podłączony do sieci LAN. Wyłączenie adaptera bezprzewodowej sieci LAN rozwiązało problem.

Aby wyłączyć adapter:

  1. Przejdź do Połączenia sieciowe
  2. Znajdź adapter
  3. Kliknij prawym przyciskiem myszy i wybierz opcję Wyłącz
bmul
źródło
2
Dzięki za wskazówkę. Zaczynałem coś takiego podejrzewać, ponieważ zauważyłem, że połączenie za pomocą przewodowego adaptera LAN również rozwiązało problem. Powinno być również możliwe rozwiązanie tego problemu poprzez zmianę priorytetu dwóch adapterów, ale w obu przypadkach wydaje się to drastyczną poprawką. Dlaczego Google nie może po prostu naprawić emulatorów, aby korzystały z połączenia, z którego korzysta mój komputer. Jak powiedziałem, nie było to problemem przed uaktualnieniem do Androida Studio 2.3. Na razie pozostanę przy innym rozwiązaniu, w którym określę serwer DNS.
John Moore,
Dzięki. Mam LAN i adapter bezprzewodowy. Praca po wyłączeniu karty sieci bezprzewodowej.
Plugie
Dokładnie! Wyłączyłem wszystkie moje karty sieciowe komputerów PC z wyjątkiem mojej karty WiFi i to działało. Dziękuję Ci.
Alexander.Iljushkin
21

Otwórz emulator Androida i przejdź do Extended Controls . Następnie przejdź do ustawienia => proxy (Tab) i odznaczone „Użyj ustawienia proxy HTTP studuio dla Androida”.

AminRah
źródło
Z drugiej strony musiałem to sprawdzić ponownie, aby internet działał. :(
Sankalp,
działał jak urok, ale musiał ponownie uruchomić emulator, aby mógł odebrać ustawienie.
u84six
15

Rozwiązałem problem wymazywania danych z AVD Managera

Blasco73
źródło
2
Mi to pasuje. Mam przypadek, że używałem emulatora z API 22. Po „Wyczyść dane” i „Zimny ​​rozruch teraz” połączenie internetowe działa dobrze, ale musiałem ponownie zainstalować aplikację.
Akostha,
13

Stało się tak, gdy emulator zamarł i musiałem zabić proces. Ikona sygnału zawsze pokazywała małe „x” jak na zrzucie ekranu i żadne połączenie internetowe nie powiodło się.

Jedyną rzeczą, która pomogła, było odinstalowanie i ponowne zainstalowanie emulatora (nie obrazów AVD)

W Android Studio:

Narzędzia-> Android -> Menedżer SDK Odznacz „Emulator Androida” i pozwól mu się odinstalować, a następnie sprawdź ponownie i pozwól zainstalować ponownie.

Zrzut ekranu

Patrick Favre
źródło
2
Miałem dokładnie ten sam problem, zrobiłem to i problem nie został rozwiązany. Ale po ponownym uruchomieniu całego komputera Internet działa teraz na emulatorze.
antogerva
to działa dla mnie, moja sytuacja .. przeinstaluj Android Studio użyłem starych plików SDK
AGTHAMAYS
2
To jedyne rozwiązanie, które zadziałało dla mnie (na Macu)
Vikzilla
Muszę się zgodzić, że to jedyne rozwiązanie działało również na komputerze Mac!
Anoop Santhanam
13

Mam również ten sam problem, ale próbuję go rozwiązać za pomocą różnych postów. Dziś odkryłem ten problem. Problemem jest konfiguracja komputera, a nie Android Studio i emulator Androida.

Problem pochodzi z konfiguracji sieci. Wystarczy ustawić Podstawowy serwer DNS na 8.8.8.8, co rozwiąże problem.

Swarup Daptari
źródło
8

Przypomnienie : połączenie internetowe Emulatora Androida nie działa, jeśli włączysz system VPN na swoim komputerze.

sprzedaż
źródło
8

[UPDATE 2020] dla użytkowników komputerów Mac

  1. Preferencje systemu
  2. Sieć
  3. WiFi> Wybierz Advance
  4. Z Advance Wybierz zakładkę DNC
  5. Dodano serwer DNS 8.8.8.8

a twoje są gotowe

Basil Mariano
źródło
7

Był to dla mnie problem podczas ostatniej aktualizacji emulatora, a następnie naprawienie go przez wyłączenie innych kart sieciowych. Teraz jest ponownie przycięty, ale jedyny włączony adapter to pojedynczy Wi-Fi, więc nie mam nic do wyłączenia.

Problem pojawił się dopiero po zaktualizowaniu za pomocą monitu narzędzi emulatora do wersji 26.1.1. Odinstalowałem i ponownie zainstalowałem emulator za pomocą karty aktualizacji SDK Tools i na szczęście jedyną opcją przy ponownej instalacji jest teraz instalacja 26.0.3 (która wydaje się działać dobrze).

Morał tej historii jest bardzo ostrożny wobec aktualizacji emulatora .

Daniel Wilson
źródło
Pracowałem dla mnie, miałem dokładnie tę samą wersję, a po odinstalowaniu ponownie zainstalowałem 26.0.3.
Sammy Patenotte
To rozwiązanie również dla mnie zadziałało! Musiałem zainstalować 26.0.3 z Android Studio 2.3. chociaż (wersja 3.0 pokazała tylko 26.1.1.). Wielkie dzięki!
Attila Molnár,
6

Dla mnie problem pojawił się, gdy zabrałem laptopa do domu bez ponownego uruchamiania emulatora. Z tego, co przeczytałem, po uruchomieniu emulatora odczytuje ustawienia DNS komputera i używa ich. Kiedy byłem w sieci domowej, moje ustawienia DNS nie działały.
Więc tak. Ponowne uruchomienie emulatora rozwiązało mój problem.

smithygreg
źródło
6

Mam proste i trwałe rozwiązanie tego problemu w systemie Windows.

Przejdź do opcji sieci i Internetu- >wprowadź opis zdjęcia tutaj

kliknij opcję Etherenet lub wifi (do którego jesteś podłączony) -> wprowadź opis zdjęcia tutaj

Kliknij opcję zmiany adaptera -> wprowadź opis zdjęcia tutaj

Kliknij sieć prawym przyciskiem myszy. wprowadź opis zdjęcia tutaj

Otworzy się okno dialogowe i wystarczy kliknąć opcję Internetowa wersja protokołu (TCP / IPv4) . wprowadź opis zdjęcia tutaj

Zostanie otwarte inne okno dialogowe, w którym po prostu zaniedbuje się pierwszy zestaw dotyczący adresu IP (Zachowaj tak, jak jest ustawiony) i kliknij przycisk opcji Użyj następujących adresów serwerów DNS: i wprowadź jako Preferowany serwer DNS: 8.8.8.8 : i 8.8. 4.4 w alternatywnym serwerze DNS: wprowadź opis zdjęcia tutaj

Teraz możesz otworzyć swój emulator kiedykolwiek i będziesz mieć dostęp do Internetu w emulatorach Androida.

Deepak N.
źródło
Żadne inne rozwiązanie nie działało dla mnie, ale to działało! Jako wzmianka: jestem na kablu LAN, więc wprowadziłem zmiany w tym ustawieniu zamiast połączenia Wi-Fi.
Zbarcea Christian
6

zamknięcie emulatora i ponowne otwarcie działało dla mnie

OSD WINDOWS 10

IAMSTR
źródło
1
To działało dla mnie. Próbowałem ponownie uruchomić telefon wirtualny, ale to nie wystarczyło. Problem może zostać wywołany przez zezwolenie działającemu emulatorowi przez hibernację. Dzięki.
Aleksiej
3

Po 10 dniach problemów po prostu C:\Android\.android\usunąłem wszystko ze wszystkich utworzonych plików AVD i usunąłem je. Teraz internet wydaje się działać dobrze.

Sparx it solutions
źródło
3

jeśli przeglądarka android ma dostęp do Internetu, możesz uruchomić emulator z terminala za pomocą tego polecenia

następnie przejdź do ścieżki SDK

$ / tools / emulator -avd Nexus_5X_API_23 -netdelay none -netspeed full

rozwiązuje problem z Internetem ...

Człowiek
źródło
3

Jestem na Android Studio 3.1 i tak się stało. Rozwiązano to przez ponowne uruchomienie serwera adb

$ adb kill-server
$ adb start-server

Mam nadzieję, że to pomoże. Dziękuję Ci

surga
źródło
3

Wystąpił również problem dla mnie, ponieważ wyłączenie proxy w ustawieniach Android Studio i uruchomienie emulatora za pomocą „Cold Boot Now”, problem został rozwiązany.

FatalMan
źródło
2

Po prostu odtworzyłem emulator z innym docelowym API

Faheem
źródło
2

Być może ustawiłeś serwer proxy dla Android Studio i serwer proxy nie działa. Spróbuj bez proxy.

użytkownik6022289
źródło
2

Miałem ten sam problem i rozwiązałem go, wykonując poniższe czynności: -

Przejdź do ustawienia emulatora, a następnie przejdź do

ustawienie-> Proxy-> Albo skonfiguruj ręcznie lub użyj Zaznacz, użyj symulatora proxy HTTP Android Studio.

Naveen rana
źródło
2

Mam studio graficzne 2017, a to proste kliknięcie rozwiązało problem z Internetem dla emulatora Androida.

wprowadź opis zdjęcia tutaj

Pin HO LI
źródło
1

Napotkałem bardzo i nagle ten sam problem na moim MAC. Po wypróbowaniu wszystkiego w końcu usunąłem folder /Users/Philippe/.android i utworzyłem nowy emulator .

Phil
źródło
1

Dla mnie w systemie OSX było to spowodowane użyciem rozwiązania VPN innej firmy ... instaluje jakiś hak sieciowy, przez który AVD i Genymotion nie mogły przejść. Musiałem go odinstalować, aby działał poprawnie. Działa dobrze w niektórych sieciach, a nie w innych ... było bardzo dziwne ..

kenyee
źródło
1

Miałem ten sam problem w systemie Windows 10. Właśnie poszedłem do Network & internet settings> Change adapter options> right-click on Wi-Fi and chose properties> Chose Internet protocol version 4 in the list and clicked properties> Turned on the "Use the following DNS server addresses" and filled the first part with "8.8.8.8" address. Problem rozwiązany!

Hasani
źródło
1

Jeśli jesteś za serwerem proxy, przydatne mogą być:

adb shell settings put global global_http_proxy_port YOUR_PROXY_PORT

adb shell settings put global global_http_proxy_host YOUR_PROXY_IP

reboot
narko
źródło
1

Proszę przejść przez poniższy link.

https://developer.android.com/studio/run/emulator-networking

Otwórz emulator, kliknij Więcej ... , a następnie Ustawienia i Serwer proxy. Tutaj możesz zdefiniować własne ustawienia proxy HTTP.


Wprowadź nazwę hosta, wykonując polecenie Uruchom> cmd> nazwa hosta

Na koniec sprawdź dostęp do Internetu w emulatorze, przeglądając Chrome lub Google.

Uwaga: często czyszczenie danych usunie problem. Wykonaj wszystkie kroki

Zapalony programista
źródło
0

Miałem to również i rozwiązałem, tworząc nowe urządzenie wirtualne z emulatorem Androida i wybrałem Nexus 4 api 27. Przed utworzeniem urządzenia Pixel api 28 nie działało nawet po odtworzeniu urządzenia. Wypróbowałem więc zupełnie inną konfigurację, a emulator Androida ma połączenie internetowe zgodnie z oczekiwaniami. Inne rozwiązania nie działały dla mnie, ale nie próbowałem tego wszystkiego.

Renetik
źródło