Rozwiązywanie znanych problemów z emulatorem Androida

Ta strona zawiera listę znanych problemów, sposobów ich obejścia oraz wskazówek dotyczących rozwiązywania problemów z emulatorem Androida. Jeśli napotkasz problem, którego nie ma na tej liście, lub nie możesz skorzystać z opisanego tu obejścia, zgłoś błąd.

Sprawdź, czy na dysku jest wystarczająca ilość miejsca

Aby uniknąć awarii i zawieszeń z powodu braku wolnego miejsca na dysku, emulator sprawdza przy uruchamianiu, czy na dysku jest wystarczająca ilość wolnego miejsca, i uruchamia się tylko wtedy, gdy wolne są co najmniej 2 GB. Jeśli emulator nie uruchomi się, sprawdź, czy masz wystarczającą ilość wolnego miejsca na dysku.

Programy antywirusowe

Wiele pakietów oprogramowania zabezpieczającego i antywirusowego monitoruje wszystkie operacje odczytu i zapisu, dlatego używanie takiego oprogramowania może obniżyć wydajność narzędzi takich jak Emulator Androida.

Wiele pakietów antywirusowych umożliwia dodawanie określonych aplikacji do listy zaufanych, co pozwala z nich korzystać bez obniżania wydajności. Jeśli zapisywanie lub wczytywanie zrzutów AVD działa wolniej, możesz poprawić wydajność, dodając aplikację Emulator Androida jako zaufaną aplikację w oprogramowaniu antywirusowym.

Wpływ na wydajność różni się w zależności od pakietu oprogramowania antywirusowego. Jeśli masz zainstalowane dodatkowe oprogramowanie antywirusowe, które wykraczają poza ten system operacyjny, możesz uruchomić proste testy, które pozwolą określić, które z nich ma większy wpływ na wczytywanie emulatora i zapisanie operacji.

Niektóre programy antywirusowe mogą być niezgodne z Emulatorem Androida.

Jeśli używasz oprogramowania Avast i masz problem z uruchomieniem emulatora Androida, w ustawieniach Rozwiązywanie problemów firmy Avast wyłącz opcje Użyj zagnieżdżonej wirtualizacji, gdy to możliwe i Włącz wirtualizację wspomaganą sprzętowo. Po wyłączeniu wirtualizacji sprzętowej Avasta upewnij się też, że konfiguracja HAXM jest prawidłowa i zainstaluj jeszcze raz najnowszą wersję HAXM z Menedżera SDK.

W systemie Windows czasami AVD zawiesza się przy użyciu HAXM, a problem można rozwiązać, całkowicie odinstalując program McAfee.

Nie udało się uruchomić AVD

Program AVD może nie uruchomić się, jeśli dostępny jest raport o awariach nowszego emulatora (numer problemu: 281725854). Ten problem występuje tylko u użytkowników, którzy zaktualizowali wersję do wczesnych testów z 33.x do 32.1.13, a przy ostatnim uruchomieniu wersji 33.x wystąpił błąd i nie uruchomili od tego czasu AVD, więc katalog %TEMP% lub /tmp jest nadal włączony. Jeśli występuje ten problem, spróbuj wyczyścić katalog %TEMP% (/tmp w systemie Linux lub macOS).

HAXM w nieobsługiwanych wersjach systemu macOS

Jeśli używasz emulatora Androida na starszych, nieobsługiwanych wersjach systemu macOS, np. 10.9, konieczne może być też użycie starszej wersji HAXM (6.1.2).

Emulator Androida działa powoli po aktualizacji

Wiele czynników zewnętrznych może powodować wolniejsze działanie emulatora Androida po aktualizacji. Aby rozpocząć rozwiązywanie problemów, zalecamy wykonanie tych czynności:

  • Jeśli masz procesor graficzny Intel (a w szczególności Intel HD 4000), upewnij się, że został pobrany i zainstalowany najnowszy sterownik karty graficznej firmy Intel.
  • Jeśli Twój komputer ma zarówno układ graficzny Intel HD 4000, jak i dyskretny GPU, wyłącz Intel HD 4000 GPU w Menedżerze urządzeń, aby używać osobnego GPU.
  • Uruchom emulator, używając trybów -gpu angle, -gpu swiftshader lub -gpu guest. Więcej informacji o konfigurowaniu opcji akceleracji graficznej w wierszu poleceń znajdziesz w artykule o konfigurowaniu akceleracji sprzętowej.
  • Jeśli nie masz połączenia IPv6, sprawdź, czy router nie korzysta z adresów IPv6.

Jeśli nadal masz problemy z powolnym działaniem emulatora Androida, zgłoś błąd i podaj niezbędne szczegóły emulatora Androida, abyśmy mogli to zbadać.

Windows: wolna pamięć RAM i obciążenia

Po uruchomieniu emulatora musi on zainicjować pamięć RAM systemu operacyjnego Android w trybie gościa. W systemie Windows emulator prosi o uwzględnienie pełnego rozmiaru pamięci gościa w momencie uruchamiania, mimo że podczas rzeczywistego działania pamięć może być wywoływana na żądanie. Emulator prosi o pełną ilość pamięci gościa w momencie uruchamiania, ponieważ system Windows ostrożnie dba o to, aby dysponować odpowiednią ilością fizycznej pamięci RAM i plików stronicowania, aby pomieścić cały potencjalny zbiór roboczy. To żądanie przygotowuje się na najgorszy przypadek, w którym cała pamięć gościa jest szybko uruchamiana bez możliwości odrzucenia lub zwolnienia w inny sposób.

Czasami, gdy emulator prosi systemu Windows o uwzględnienie pełnego rozmiaru pamięci gościa, żądanie przekracza bieżący limit zobowiązania, który stanowi sumę dostępnej fizycznej pamięci RAM i pliku strony. W takim przypadku system Windows nie może zagwarantować, że działający zestaw najgorszy z możliwych warunków mieści się w fizycznej pamięci RAM lub pliku stronicowania, a emulator nie uruchomi się.

W większości przypadków ilość miejsca na dysku twardym przydzielonego do pliku strony i fizyczna pamięć RAM jest większa niż wystarczające. Jeśli jednak występują problemy z uruchomieniem emulatora z powodu przekroczenia limitu zatwierdzenia, zalecamy sprawdzenie bieżącej opłaty za zatwierdzenie, która jest widoczna na karcie Wydajność w Menedżerze zadań Windows. Aby otworzyć Menedżera zadań, naciśnij Ctrl+Shift+Esc.

Aby na różne sposoby zmniejszyć prawdopodobieństwo przekroczenia limitu zobowiązań:

  • Przed uruchomieniem emulatora zwolnij fizycznej pamięci RAM przez zamknięcie nieużywanych aplikacji i plików.
  • Wyłącz zewnętrzne narzędzia do zarządzania pamięcią i kompresji pamięci. Te narzędzia mogą nieefektywnie powodować nadmierne opłaty za zatwierdzenie i zbliżać system do limitu zatwierdzenia.
  • Użyj rozmiaru zarządzanego przez system dla pliku stronicowania systemu Windows, który może bardziej elastycznie i dynamicznie zwiększać rozmiar pliku stronicowania (a tym samym limit zatwierdzenia) w odpowiedzi na zwiększone zapotrzebowanie ze strony emulatora i innych aplikacji.

    Więcej informacji o opłatach za zobowiązania oraz o tym, dlaczego elastyczne ustawienie sprawdza się najlepiej, znajdziesz w tym artykule firmy Microsoft.

Funkcja Multi-touch nie działa w oknie narzędzia

Gesty wielodotykowe, w tym przesuwanie 2 palcami, nie działają, gdy emulator działa w oknie narzędzia. Aby włączyć wielodotyk, uruchom emulator w osobnym oknie.

Emulator obniża poziom dźwięku na wyjściu Bluetootha

Jeśli używasz zestawu słuchawkowego Bluetooth, możesz zauważyć, że wyjście dźwięku słuchawek Bluetooth po uruchomieniu emulatora jest gorsze (problem 183139207). Dzieje się tak, ponieważ po uruchomieniu emulatora włącza się mikrofon w zestawie słuchawkowym, co powoduje, że zestaw słuchawkowy przełącza tryb dupleksu z niższą jakością.

Aby uniknąć tego problemu, wyłącz mikrofon w emulatorze, dodając hw.audioInput=no do pliku config.ini urządzenia wirtualnego z Androidem (AVD). Aby znaleźć plik config.ini programu AVD, otwórz go w Menedżerze urządzeń, kliknij rozszerzone menu i wybierz Pokaż na dysku.

Windows: nie można uruchomić emulatora, jeśli nazwa AVD zawiera kod Unicode.

Gdy w systemie Windows Menedżer urządzeń tworzy urządzenie wirtualne z Androidem (AVD), domyślnie tworzy on AVD pod adresem C:\Users\<name>\.android\avd. Jeśli jednak nazwa AVD (<name>) ma kod Unicode, emulator nie może prawidłowo uruchomić AVD z użyciem tej domyślnej lokalizacji.

Ten problem został rozwiązany w Emulatorze w wersji 31.3.6 i nowszych. Aby rozwiązać ten problem, zaktualizuj emulator, wybierając Narzędzia > Menedżer pakietów SDK.

Aby obejść ten problem, przed utworzeniem AVD ustaw zmienną środowiskową ANDROID_SDK_HOME na katalog niestandardowy. Na przykład utwórz katalog C:\Android\home, a następnie ustaw ANDROID_SDK_HOME na ten nowo utworzony katalog. Więcej informacji znajdziesz w artykule o zmiennych środowiskowych.

Okno osadzonego emulatora jest za małe

Na komputerach o niższej rozdzielczości, np. 1024 x 768, odczytanie ekranu emulatora może być trudne, gdy otwiera się on w oknie narzędzia w Android Studio. Aby zrobić więcej miejsca w emulatorze, zamknij okno narzędzia Menedżer urządzeń, jeśli jest otwarte. Możesz też otworzyć okno emulatora z Android Studio. Aby to zrobić, w oknie emulatora kliknij Ustawienia > Tryb widoku i wybierz Okno zamiast Zadokuj przypięte.

Błąd: nie można znaleźć pliku vulkan-1.dll

Jeśli nie udało się uruchomić emulatora z powodu błędu vulkan-1.dll cannot be found, prawdopodobnie musisz go zaktualizować. Aby zaktualizować emulator w Android Studio, kliknij Narzędzia > Menedżer pakietów SDK i zainstaluj najnowszą stabilną wersję platformy Androida.

Jeśli nie potrzebujesz aplikacji korzystających z biblioteki graficznej Vulkan, wyłącz tę funkcję, uruchamiając emulator z wiersza poleceń z flagą -feature -Vulkan.

Brak internetu: nie udało się znaleźć adresu DNS serwera

Jeśli emulator nie może połączyć się z internetem, spróbuj uruchomić go z poziomu wiersza poleceń, używając opcji -dns-server “2001:4860:4860::8844,2001:4860:4860::8888,8.8.8.8,8.8.4.4”. To polecenie udostępnia rozdzielaną przecinkami listę publicznych adresów IP DNS Google. Więcej informacji o publicznym DNS Google znajdziesz w artykule Publiczny DNS Google dla Twoich urządzeń.

Brak internetu: problemy z rozpoznawaniem nazw DNS

Czasami adresy DNS w pliku /etc/resolv.conf nie działają prawidłowo. Aby obejść ten problem, uruchom emulator z wiersza poleceń za pomocą opcji -dns-server 8.8.8.8 lub -dns.server 2001:4860:4860::8888, aby połączyć się przez sieć obsługującą tylko protokół IPv6.

Nie udało się utworzyć zrzutu

Tworzenie zrzutu emulatora zawierającego bibliotekę grafiki Vulkan nie jest obsługiwane. Aby uruchomić emulator bez interfejsu Vulkan, uruchom go z poziomu wiersza poleceń z flagą -feature -Vulkan. Jeśli w trakcie programowania chcesz używać zrzutów ekranu, możesz też odinstalować aplikacje z interfejsem Vulkan, np. Chrome z interfejsem API w wersji 30 lub nowszej.

Nie można poprawnie otworzyć strony internetowej

Od poziomu interfejsu API 30 Chrome jako backendu renderowania używa biblioteki graficznej Vulkan i w przypadku niektórych komputerów może powodować problemy ze zgodnością. Jeśli Chrome nie będzie się wyświetlać prawidłowo, spróbuj uruchomić emulator z poziomu wiersza poleceń z flagą -feature -Vulkan.

Hipernadzorca Intel HAXM nie obsługuje w pełni procesorów firmy Intel iX sprzed tej technologii

Jeśli Twój komputer jest wyposażony w procesor przed Intel iX i hipernadzorcę Intel HAXM, mogą występować problemy z wydajnością emulatora. Dzieje się tak, ponieważ emulator nie jest w stanie użyć akceleracji sprzętowej do poprawy wydajności na starszych komputerach. Jeśli używasz procesora z procesorem starszym niż Intel iX, testowanie może być łatwiejsze, gdy używasz urządzenia fizycznego zamiast emulatora.

Hipernadzorcy nie mogą emulować niektórych funkcji procesora wymaganych przez systemy Android x86

Hipernadzorcy zwykle nie mogą emulować niektórych funkcji procesora, takich jak SSED (Streaming SIMD Extensions, SSE), wymaganych przez systemy Android x86.

Urządzenia wirtualne z Androidem nie uruchamiają się w ChromeOS

W ChromeOS urządzenia wirtualne z Androidem mogą się nie uruchomić z powodu braku zależności libnss3. Aby uruchomić pliki AVD, uruchom ręcznie sudo apt install libnss3 w celu ręcznej instalacji biblioteki libnss3.

Ostrzeżenie ze sterownikiem GPU – powrót do oprogramowania na procesorach Intel HD4000

Jeśli otrzymasz ostrzeżenie o zastępstwie sterownika GPU, spróbuj zmienić konfigurację GPU na sprzęt. Domyślnie używany jest model automatyczny, co może wybrać renderowanie programowe. Jeśli wybierzesz sprzęt, musisz mieć możliwość wymuszenia na nim renderowania sprzętowego (wciąż może pojawić się komunikat ostrzegawczy).

W przypadku obrazów ze Sklepu Play można to zrobić w menedżerze urządzeń -> 3 kropki -> Edytuj. W przypadku obrazów ze Sklepu Play musisz ręcznie edytować te 2 pliki konfiguracyjne:

~/.android/nazwa_avd.avd/config.ini

~/.android/nazwa_avd.avd/hardware-qemu.ini

i zmień hw.gpu.mode na host

Więcej informacji znajdziesz w sekcji bug.