Emulator Androida nie mógł przydzielić pamięci 8


157

Kiedy próbuję uruchomić emulator WXGA800 z Eclipse, wyświetla taki błąd

Failed to allocate memory: 8
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

Sprawdziłem również poniższe linki

Nie udało się przydzielić pamięci: 8

Android: nie udało się przydzielić pamięci

Próbowałem zmniejszyć rozmiar pamięci RAM w emulatorze i zwiększyć heapsize i ramsize Java, ale nadal mam ten sam błąd.


spróbuj ustawić rozdzielczość ręcznie, zamiast tego użyj wbudowanej skórki.
SteveR

Proszę sprawdzić moją odpowiedź tutaj: stackoverflow.com/a/14420779/1993898
Prymaldark,


Chłodny. Sformułowałem to samo pytanie mniej elokwentnie i poprosiłem ludzi o odrzucenie go. Mam nadzieję, że gdzieś tutaj jest świetna odpowiedź. Staram się emulować Samsunga Galaxys z obsługą S-Pen, a one również przekraczają możliwości emulatora.
Sinthia V

Odpowiedzi:


410

Aktualizacja : począwszy od wersji 21 Android SDK Manager, rozwiązaniem jest edycja C:\Users\<user>\.android\avd\<avd-profile-name>.avd\config.inii zmiana wartości

hw.ramSize=1024 

do

hw.ramSize=1024MB

Interfejs API systemu Android 4.2 17

Emulator działa bardzo wolno, mam nadzieję, że wkrótce opublikują zdjęcia wywiaduużyj nowych obrazów API17 Intel x86, jeśli chcesz to zmienić. ( HAXM , konfiguracja )


Wcześniejsze wersje Android SDK Manager:

Miałem ten sam problem z wbudowaną skórką WXGA800. Mam to działające, edytując konfigurację urządzenia wirtualnego, aby:

  • Docelowy interfejs API 4.0.3 API 15 / API 4.1.0 16
  • Karta SD 300 MiB
  • Rozdzielczość 1280 x 800 (ustawiana ręcznie - nie wbudowane)
  • Rozmiar pamięci RAM urządzenia 1024 MB (z dodanymi MB)
  • Streszczenie LCD 160

Tutaj moja konfiguracja tabletu dla 4.1.0 API 16 C:\Users\<user>\.android\avd\<avd-profile-name>.avd\config.ini

hw.lcd.density=160
sdcard.size=300M
skin.path=1280x800
skin.name=1280x800
hw.cpu.arch=arm
abi.type=armeabi-v7a
hw.cpu.model=cortex-a8
vm.heapSize=48
hw.ramSize=1024MB
image.sysdir.1=system-images\android-16\armeabi-v7a\

Ta konfiguracja pokazuje również klucze oprogramowania Zrzut ekranu Emulator Androida 4.1 1280x800 @ 160


1
Czuję się trochę głupio, że nie próbowałem tego wcześniej :)! Dzięki stary, uratowałeś mi życie!
caiocpricci 2

2
+1 Skorzystałem z tej rady, a następnie uruchomiłem emulator z wiersza poleceń, aby to zadziałało. Mam nadzieję, że Xavier wkrótce uratuje nas przed tą niestrawnością…
OceanLife,

9
Usunąłem błąd, zmniejszając wartość „Opcja pamięci: RAM” do 512 i ustawiając Rozmiar karty SD na 300MiB.
Someone Somewhere

3
Poważnie, co za głupi błąd ... / facepalm Przynajmniej mogę teraz robić postępy! Dziękuję Ci!
mrswadge,

2
łał. to jest okropne. oficjalny SDK i zestaw testowy nie obsługują tego poprawnie? musisz ręcznie edytować pliki .ini, a to trwało prawie rok? to jest szalone.
Matt Lohkamp

67

To rozwiązanie zadziałało dla mnie. W następującym pliku konfiguracyjnym:

C:\Users\<user>\.android\avd\<avd-profile-name>.avd\config.ini

Zastąpić

hw.ramSize=1024

przez

hw.ramSize=1024MB

1
Nie wiem, dlaczego, ale to naprawiło to. Dzięki
schar

1
Dobre miejsce, to musi być błąd ... Postępowałem zgodnie z konwencją plików i po prostu użyłem litery M, która również działała.
HGPB

17
Trochę żałosne ze strony Google, naprawdę. Czy oni nie testują?
Cory Trese

+1 To mi pasuje. Może dlatego, że kiedy podałem rozmiar pamięci RAM, wybieram 1 GB.
Eng.Fouad,

4
W innej odpowiedzi ktoś twierdził, że "MB" nie jest faktycznie rozpoznawane i zmiana z 1024 na 1024 MB faktycznie zmniejsza pamięć do 256 MB, co jest wartością domyślną i dlatego zaczyna działać. Źródło: stackoverflow.com/questions/7222906/failed-to-allocate-memory-8
Juha Palomäki

9

W moim przypadku rozwiązaniem była zmiana nie tylko, config.iniale także hardware.inidla konkretnej skóry z hw.ramSize=1024na hw.ramSize=1024MB.

Aby znaleźć hardware.iniplik:

  1. Otwórz config.inii zlokalizuj skin.path.
  2. Następnie przejdź do folderu, w którym znajduje się zestaw SDK systemu Android.
  3. Otwórz ścieżkę, tak: android-sdk\platforms\android-15\skins\WXGA720.
  4. Wewnątrz tego folderu znajdziesz plik hardware.ini.
  5. Zmień hw.ramSize=1024na hw.ramSize=1024MB.

2
pracował dla mnie. Nie wiem, dlaczego ludzie nie lubią twojej odpowiedzi. Dzięki!
Veaceslav Gaidarji

5

Aktualizacja: począwszy od wersji 21 Android SDK Manager, rozwiązaniem jest edycja C: \ Users \ .android \ avd \ .avd \ config.ini i zmiana wartości

hw.ramSize = 1024 do

hw.ramSize = 1024 MB

LUB

hw.ramSize = 512 MB


3

Ten błąd jest wyzwalany, jeśli ustawisz pamięć RAM AVD na cokolwiek, co jest większe niż pojedynczy największy blok pamięci ciągłej, który emulator może przydzielić. Zamknij wszystko, co jest ciężkie w pamięci RAM, uruchom emulator, uruchom wszystko, czego potrzebujesz. W poprzedniej odpowiedzi ograniczyłem to do obrazów x86 z IntelHAXM, ale tak jest w przypadku wszystkich typów instancji emulatorów.


3

W konfiguracji AVD: Zmień opcję CPU / ABI na MIPS. U mnie to zadziałało


1

Miałem ten sam problem i ostatecznie problemem był rozmiar pamięci RAM: najwyraźniej 1024 (lub jakikolwiek inny rozmiar) różni się od 1024 MB. Upewnij się, że określasz jednostki i powinno działać dla Ciebie.


1

Zmiana rozmiaru ram w pliku config.ini nie działała dla mnie.

Zmieniłem rozmiar karty SD na 1000 MiB w oknie Edytuj urządzenie wirtualne Androida ... Udało się! :)


Czy na pewno Twoja odpowiedź dotyczy problemu? Ponieważ wydaje się, że problem dotyczy pamięci RAM, która nie ulegnie zmianie, jeśli zmienimy rozmiar karty SD.
układacz klas

0

Idź do edycji Android Virtual Devices i zmień 1024 Under Memory Options na 768. Jeśli nadal nie działa, idź coraz niżej.


0

Zmniejszenie rozmiaru pamięci RAM w ustawieniach AVD zadziałało dla mnie. Powolne działanie AVD może pochłonąć dużo pamięci RAM, więc utrzymanie go na minimalnym poziomie jest możliwe.



0

Spróbuj tego, jeśli inne odpowiedzi Ci nie odpowiadają.

Dla mnie stało się to w przypadku emulatora API 27.

Emulator API 26 działał dobrze. Więc najpierw uruchomiłem API 26 Emulator, a potem go zamknąłem.

Następnie uruchomiłem API 27 Emulator i działało bez żadnych błędów.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.