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

369

Od dzisiaj, kiedy próbowałem uruchomić aplikację w NetBeans na platformie Android 2.3.3, pokazuje mi, że:

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

Ta aplikacja poprosiła środowisko wykonawcze o zakończenie go w nietypowy sposób. Skontaktuj się z zespołem pomocy technicznej aplikacji, aby uzyskać więcej informacji.

i emulator nie chce się uruchomić.

Po raz pierwszy go widzę, a Google nie ma na to żadnych odpowiedzi, próbowałem nawet z 2 wersjami NetBeans 6.9.1 i 7.0.1, wciąż ten sam błąd.

Δεηις Hoςς
źródło
3
Ciekawe, dlaczego używasz NetBeans vs. Eclipse. Używam NetBeans do innych rzeczy (mianowicie php), ale właśnie odkryłem, że łatwiej jest używać Eclipse do Androida. Jakie według Ciebie są zalety w stosunku do zaćmienia?
SBerg413,
3
Po prostu nigdy wcześniej nie korzystałem z Eclipse, ale nie wiem dlaczego, nienawidzę tego, powód jest nawet skomplikowany w GUI w porównaniu do NetBeans, ale na razie go pobieram, aby spróbować, jeśli problem zniknie, zrobię Android tylko w nim.
Denees,
47
Wow, ten komentarz był masakrą przecinkową. W każdym razie upewnij się, że AVD używa odpowiedniej ilości pamięci RAM (tj. Wystarczającej do uruchomienia, ale nie więcej niż komputer jest w stanie obsłużyć). Jest to ustawiane podczas tworzenia urządzenia wirtualnego.
Glendon Trullinger
2
Dla porównania mam Core i7 z 16 GB pamięci RAM, maxxed RAM na moich AVD i wszystkie są opóźnione niestety: /
Jack
1
Mam 64-bitową maszynę z systemem Windows 8 i procesorem Intel Core i7. Musiałem zmienić ustawienia pamięci RAM dla tego AVD (Nexus 7) do 512 MB, aby działało.
IgorGanapolsky

Odpowiedzi:

373

Rozgryzłem to. Problem polegał na ilości pamięci RAM, którą określiłem dla maszyny wirtualnej, a była to 1024 MB, teraz mam 512 MB i jest w porządku, teraz muszę znaleźć sposób na poprawienie tej ilości pamięci RAM, 512 to nie tyle, i maszyna jest trochę opóźniona.

Denees
źródło
20
Mam z tym ten sam problem. Mam 8 GB pamięci RAM na moim komputerze, z 6 GB wolnego miejsca, podczas gdy emulator Androida mówi mi, że nie może przydzielić 1 GB?
Strozykowski 11.11.11
5
Mam również 8 GB pamięci RAM, ale SDK mówi mi, że nie mogę z niego korzystać więcej niż 512 :)
Denees,
5
Jeszcze jedna poprawka do dodania. Czasami ustawienie RAM na niższe wartości nie działa. W takim przypadku spróbuj uruchomić emulator z wiersza polecenia za pomocą czegoś takiegoemulator-x86 -avd <your_avd_name>
Mykhailo Gaidai
14
Właśnie dostałem rozwiązanie: muszę zdecydowanie określić rozdzielczość AVD: 800 x 1280. Zaczyna mój AVD zgodnie z tym, czego
wymagałem
4
Problem pochodzi z dowolnej skórki ekranu, która dodaje wartość 1024 do hw.ramSizew pliku config.ini ( Device Ram Sizena liście sprzętowej GUI). Pamiętaj, aby albo wybrać „skórkę” o niższej wartości, albo użyć ręcznej rozdzielczości i usunąć tę linię z listy Sprzęt - nie można jej usunąć po wybraniu skórki.
RedGlyph,
61

Nawiązując do Androida: nie udało się przydzielić pamięci i jej pierwszy komentarz pod zaakceptowaną odpowiedzią, zmiana „1024” na „1024 MB” pomogła mi. Żałosne, ale działa.

Fenix ​​Voltres
źródło
29
Emulator nie rozpoznaje „MB”, co wymusza użycie domyślnej wartości 256 MB. Pamiętaj, że podana kwota nie jest tym, co otrzymasz!
RedGlyph,
1
Patrząc w obszarze Aplikacje, Runnning, podaje całkowitą ilość pamięci do około 240 MB, więc wydaje się, że powraca do 256 MB.
jishi
Dodaj w oknie Uruchom konfiguracje parametr -memory 512 z tego linku naprawił to dla mnie
GatesReign
43

W moim przypadku:

  • Używając wbudowanego WXGA720 do symulacji urządzenia 720p, zawsze pojawiał się ten błąd
  • Ręcznie ustaw rozdzielczość AVD na 720 x 1280, działa dla mnie

mam nadzieję, że to pomoże ~

RRTW
źródło
Podobnie tutaj, ustawienie domyślne dla 7 "WXGA800 nie powiodło się i ustawienie 800 x 1280 działa.
xandy
30

Zamiast tego działa z 512 Mb. Żadna z powyższych metod nie działa dla mnie.

slash33
źródło
Błąd „Nie można przydzielić pamięci: 8” zniknął po zmniejszeniu rozmiaru pamięci RAM z 1024 do 768 Mib.
curd0
wielu z nich mówi to samo, aby naprawić rozmiar 512 MB, ale to wcale nie działało
Steve
30

Wszystko inne, co czytasz tutaj i gdzie indziej, jest czystą hipotezą. Jedynym pewnym sposobem na rozwiązanie tego problemu jest głosowanie na ten raport o błędzie .

Problem nie jest związany z rozdzielczością emulatora lub OpenGL, ani z ilością pamięci w komputerze. Mam 24 GB pamięci w komputerze i przez większość czasu, gdy działam, pojawia hw.ramSize=1024się błąd 8. Innym razem działa dobrze bez żadnych zmian w konfiguracji. Mam nadzieję, że to zrozumiałeś: w ogóle nie zmieniłem konfiguracji emulatora, a jednak czasami działa, a czasem nie.

Istnieje duże prawdopodobieństwo, że ma to związek z fragmentacją pamięci. Zalecam zmniejszenie wartości hw.ramSizejako tymczasowe obejście.

Gili
źródło
2
Z całym szacunkiem, twoja odpowiedź jest również domniemaniem; Dla mnie nie mam problemu z uruchomieniem emulowanego urządzenia z wirtualną pamięcią RAM ustawioną na 2048 (nie próbowałem wyżej). Te urządzenia będą jednak działać tylko wtedy, gdy uzyskam dostęp do mojego komputera za pośrednictwem pulpitu zdalnego . Dla mnie jest to z pewnością problem graficzny, a nie fragmentacja pamięci. Mogę niezawodnie to udowodnić, przeskakując między sesjami lokalnymi i zdalnymi. Ta sama sesja, ta sama instancja menedżera AVD, po prostu brak okropnych kart NVIDIA i ich cholernych sterowników w jednym scenariuszu. (Ale to rant dla innego wątku).
s.co.tt
Jeśli chodzi o „fragmentację pamięci RAM”, prawdopodobnie moglibyśmy przetestować to za pomocą jednego z tych głupich darmowych programów do „defragmentacji pamięci RAM”, prawda?
Użytkownik
17

Wygląda na to, że jest na to tysiąc różnych poprawek ... żadna z powyższych nie działała dla mnie, ale zadziałało uruchomienie AVD z wiersza poleceń emulator-arm.exe @ AVD-NAME

W jakiś sposób, jeśli uruchomiłem go tylko za pomocą emulatora.exe, dostanę ten sam komunikat o błędzie niż podczas próby uruchomienia za pomocą Eclipse.

Vincent Demers
źródło
Możesz mieć ten sam problem co ja. Pliki DLL są ładowane podczas uruchamiania emulatora z jednego miejsca, a nie z innego.
mjaggard
14

Uświadomiłem sobie, że rozwiązanie tego problemu wynika z przydziału pamięci Eclipse podczas uruchamiania aplikacji w trybie normalnym. Właśnie zaznaczyłem pole „Uruchom jako administrator” pod właściwościami skrótu dla Eclipse i teraz pozwala mi przydzielić więcej pamięci dla AVD.

Mam nadzieję, że to pomaga.

Mahan H.
źródło
13

Rozwiązałem ten problem, zmieniając rozmiar ekranu urządzenia.

Przekonałem się, że jeśli określasz 1024 MB pamięci RAM, musisz określić rozmiar ekranu urządzenia tylko w HDpi, a jeśli jest to 512 MB pamięci RAM, powinien to być mdpi lub inny.

Możemy więc wyraźnie powiedzieć, że rozmiar pamięci RAM należy określić zgodnie z rozmiarem ekranu. Jeśli podajesz rozmiar 1024 ram przy zachowaniu rozmiaru ekranu urządzenia w mdpi, spowoduje to wspomniany wyżej błąd, tj. „Nie udało się przydzielić pamięci: 8 Ta aplikacja poprosiła środowisko wykonawcze o zakończenie go w nietypowy sposób.

Skontaktuj się z zespołem pomocy technicznej aplikacji, aby uzyskać więcej informacji. ”

lub

skonfiguruj opcje w menedżerze AVD w następujący sposób:

[2013-01-11 14:44:01 - SDK Manager] hw.sensors.orientation = tak

[2013-01-11 14:44:01 - SDK Manager] hw.camera.front = brak

[2013-01-11 14:44:01 - SDK Manager] hw.gps = tak

[2013-01-11 14:44:01 - SDK Manager] skin.dynamic = nie

[2013-01-11 14:44:01 - SDK Manager] hw.keyboard = no

[2013-01-11 14:44:01 - SDK Manager] vm.heapSize = 32

[2013-01-11 14:44:01 - SDK Manager] hw.ramSize = 343

Vsw10
źródło
To zadziałało: [2015-07-23 12:54:59 - SDK Manager] disk.dataPartition.size = 500M [2015-07-23 12:54:59 - SDK Manager] hw.gpu.enabled = yes [2015- 07-23 12:54:59 - Menedżer SDK] hw.audioInput = tak [2015-07-23 12:54:59 - Menedżer SDK] hw.sensors.orientation = tak [2015-07-23 12:54:59 - Menedżer SDK] hw.camera.front = brak [2015-07-23 12:54:59 - Menedżer SDK] hw.gps = tak [2015-07-23 12:54:59 - Menedżer SDK] skin.dynamic = nie [2015-07-23 12:54:59 - SDK Manager] hw.keyboard = yes [2015-07-23 12:54:59 - SDK Manager] vm.heapSize = 32 [2015-07-23 12:54 : 59 - SDK Manager] hw.ramSize = 512
user914425
6

Przejrzałem wszystkie inne rozwiązania wymienione w tym wątku i nie znalazłem nic, co działałoby, więc trochę się rozejrzałem. Wersja API interfejsu Google z jakiegoś powodu zawiodła mnie. Zmieniłem go z powrotem na waniliowy i nie ma już awarii.

Muszę mieć inny problem, ale może to pomoże komuś ...

Helico
źródło
Dziwny. Ustawiono mnie na wersję waniliową, ale przejście do interfejsu API Google rozwiązało to. W każdym razie +1 za pomysł!
Paul
6

Zobacz oficjalny numer 33930 . Podkreślono, że może to mieć związek z uruchomieniem OpenGL podczas uruchamiania emulatora. Inni napisali, że ulega awarii tylko wtedy, gdy używają skórki WXGA800 i sugerują ręczne ustawienie rozdzielczości na 800x1280.

Ponadto udostępniono pliki ZIP do ręcznej aktualizacji Androida SDK do wersji 19 i narzędzi platformy do wersji 11. Może to również pomóc w tymczasowym rozwiązaniu problemu.

Max
źródło
Może to być związane z moim problemem. Pliki DLL są ładowane podczas uruchamiania emulatora z jednego miejsca, a nie z innego.
mjaggard
Musi być coś więcej. Najpierw ustawienie na WXGA800, a następnie zmiana na ręczną rozdzielczość 1280x800 nadal powoduje awarię AVD. Tylko usunięcie hw.ramSize=1024rozwiązuje problem (nie możesz tego zrobić, jeśli wybrano WXGA, musisz użyć ustawień ręcznej rozdzielczości).
RedGlyph,
5

Mam 16 GB i czterordzeniowy procesor 3,4 Ghz w mojej maszynie. Maszyna wirtualna też nie pozwoli mi uruchomić jej na 1024. Zwiększyłem go do 878 MB, ponieważ przy 880 nie powiódł się ten sam komunikat. To chyba najbardziej RAM, jaki mogę przydzielić emulatorowi. Nadal jest wolny, ale zakładam, że jest lepszy niż 512 MB.

sondlerd
źródło
5

Zmieniam ustawienia DPI monitora z opcji uruchamiania AVD i zsynchronizowałem je z oryginalnym i bieżącym ustawieniem mojego monitora i działało.

Droid GEEK
źródło
4

Rozwiązałem problem, umieszczając rozmiar pamięci 2 razy większy niż rozmiar pamięci RAM i ustawiając rozmiar pamięci SD taki sam, jak rozmiar pamięci RAM.

Francesco Belladonna
źródło
3

Miałem ten sam problem, ale zanim go dostałem, poprosiłem mnie o przechwycenie źródła wideo.

Wyłączyłem obsługę aparatu i mogłem korzystać 1024MB of RAM.

Korzystanie z systemu Windows 64bit, Xoom (Android 3.0).

Barry Carter
źródło
3

W moim przypadku zmiana rozdzielczości ekranu z WVGA720 na WSVGA działa dla mnie.

Mabicho
źródło
3

Problem polega na fragmentacji pamięci. OS musi przydzielić wszystkie pamięci RAM określone dla vm (powiedzmy 1 Gb) jako jeden ciągły blok. Czasami nie ma takiego bloku. Aby to naprawić, zamknij działające programy, a następnie uruchom avd i uruchom maszynę wirtualną.

Dave
źródło
2

W systemie Windows zadziałało:

1) Zamykanie Eclipse 2) Uruchamianie interfejsu użytkownika Avd 3) Zamykanie wszystkich uruchomionych procesów, szczególnie tych, które mają dużo pamięci, takich jak Chrome, explorer.exe itp. 4) Uruchom emulator 5) Win

Oren Bengigi
źródło
2

Upewnij się, że IntelHAXM jest poprawnie zainstalowany. Nie wystarczy pobrać i „zainstalować” go za pomocą Menedżera SDK. Musisz ręcznie zainstalować go z:

android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

Ponadto upewnij się, że w systemie BIOS jest włączona technologia wirtualna Intel.

Postępuj zgodnie z instrukcjami na stronie developer.android.com lub instrukcjami instalacji firmy Intel .

kołek
źródło
2

Trzeba tylko edytować ram urządzenia wirtualnego, aby obniżyć go! Wypróbuj 20 MB, a będzie działać!

użytkownik2062658
źródło
1

Zauważyłem, że dotyczyło to tylko jednego avd wszystkich pozostałych, które dobrze pracowałem. Usunąłem go i utworzyłem nowy, a teraz działa.

Jason Crosby
źródło