Android emülatörü bellek 8'i ayıramadı


157

WXGA800 emülatörümü Eclipse'den çalıştırmaya çalıştığımda böyle bir hata veriyor

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.

Aşağıdaki bağlantıları da kontrol ettim

Bellek ayrılamadı: 8

Android: bellek ayıramadı

Emülatörde RAM boyutunu azaltmayı ve Java yığın boyutunu ve ramsize'yi artırmayı denedim ama yine de aynı hatayla karşılaşıyorum.


çözünürlüğü manuel olarak ayarlamayı deneyin, bunun yerine yerleşik cildi kullanın.
SteveR

Lütfen cevabımı buradan kontrol edin: stackoverflow.com/a/14420779/1993898
Prymaldark


Güzel. Aynı soruyu daha az etkili bir şekilde ifade ettim ve insanların oy kullanmasını istedim. Umarım burada bir yerde harika bir cevap vardır. Samsung Galaxys'i S-Pen desteğiyle taklit etmeye çalışıyorum ve hepsi de emülatörün yeteneklerini aşıyor.
Sinthia V

Yanıtlar:


410

Güncelleme : Android SDK Manager sürüm 21'den başlayarak çözüm, C:\Users\<user>\.android\avd\<avd-profile-name>.avd\config.inideğeri düzenlemek ve değiştirmek

hw.ramSize=1024 

için

hw.ramSize=1024MB

Android 4.2 API 17

Emülatör gerçekten yavaş, umarım intel görüntüleri yakında yayınlayacaklardeğiştirmek istiyorsanız yeni API17 Intel x86 görüntülerini kullanın .. ( HAXM , Yapılandırma )


Daha önceki Android SDK Yöneticisi sürümleri:

Yerleşik WXGA800 kaplamasıyla aynı sorun vardı. Sanal cihaz kurulumunu şu şekilde düzenleyerek çalıştım:

  • Hedef 4.0.3 API 15 / 4.1.0 API 16
  • SD kart 300MiB
  • Çözünürlük 1280 x 800 (manuel olarak ayarlanır - yerleşik olanlar değil)
  • Cihaz ram boyutu 1024MB (numaraya MB eklenmiş olarak)
  • Soyutlanmış LCD 160

İşte 4.1.0 API 16 için tablet yapılandırmam 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\

Bu yapılandırma yazılım tuşlarını da gösterir Ekran görüntüsü Android 4.1 emulator 1280x800 @ 160


1
Daha önce denemediğim için biraz aptal hissediyorum :)! Teşekkürler adam hayatımı kurtardın!
caiocpricci2

2
+1 Bu tavsiyeyi aldım ve ardından işe yaraması için emülatörü komut satırından başlattım. Umut Xavier yakında bizi bu lapa lapa kurtaracak ....
OceanLife

9
"Bellek Seçeneği: RAM" i 512'ye indirip SDcard Boyutunu 300MiB olarak ayarlayarak hatayı ortadan kaldırdım.
Bir Yerde

3
Cidden, ne kadar aptalca bir böcek ... / facepalm En azından şimdi ilerleyebilirim! Teşekkür ederim!
mrswadge

2
vay. Bu korkunç. SDK ve test kiti bunu doğru şekilde ele almıyor mu? .ini dosyalarını elle düzenlemeniz gerekiyor ve neredeyse bir yıl boyunca durum böyle mi? bu delilik.
mat lohkamp

67

Aşağıdaki çözüm benim için çalıştı. Aşağıdaki yapılandırma dosyasında:

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

değiştirmek

hw.ramSize=1024

tarafından

hw.ramSize=1024MB

1
Neden olduğundan emin değilim ama bu düzeltti. Teşekkürler
schar

1
İyi nokta, bu bir hata olmalı ... Ben dosyaları kongre izledi ve sadece bir M çalıştı, hangi da çalıştı.
HGPB

17
Google adına biraz acıklı. Test etmiyorlar mı?
Cory Trese

+1 Bu benim için çalışıyor. Belki de ram boyutunu belirlediğimde 1 GB'ı seçtiğim için.
Müh.Foad

4
Diğer cevapta birisi "MB" nin gerçekten tanınmadığını ve 1024'ten 1024 MB'a değiştirilmesinin belleği gerçekten 256 MB'a düşürdüğünü iddia etti ve bu yüzden çalışmaya başladı. Kaynak: stackoverflow.com/questions/7222906/failed-to-allocate-memory-8
Juha Palomäki

9

Benim durumumda, çözüm sadece değiştirmekti config.iniama aynı zamanda hardware.inibelirli cilt için hw.ramSize=1024için hw.ramSize=1024MB.

Dosyayı bulmak için hardware.ini:

  1. Açın config.inive bulun skin.path.
  2. Ardından android sdk'nin bulunduğu klasöre gidin.
  3. Bu gibi yolunu açma: android-sdk\platforms\android-15\skins\WXGA720.
  4. Bu klasörün içinde hardware.ini.
  5. Değişim hw.ramSize=1024için hw.ramSize=1024MB.

2
benim için çalıştı. İnsanların neden cevabınızı sevmediğini bilmiyorum. Teşekkürler!
Veaceslav Gaidarji

5

Güncelleme: Android SDK Manager sürüm 21'den başlayarak çözüm, C: \ Users \ .android \ avd \ .avd \ config.ini dosyasını düzenlemektir ve değeri değiştirmektir.

hw.ramSize = 1024 ile

hw.ramSize = 1024MB

VEYA

hw.ramSize = 512


3

Bu hata, AVD RAM'i öykünücünün ayırabileceği en büyük sürekli bellek bloğundan daha büyük bir değere ayarlarsanız tetiklenir. Ağır RAM'i kapatın, emülatörünüzü başlatın, ihtiyacınız olan diğer her şeye başlayın. Önceki bir cevapta bunu IntelHAXM ile x86 görüntülerle sınırladım, ancak bu aslında tüm emülatör örnekleri için geçerli.


3

AVD kurulumunda: CPU / ABI seçeneğini MIPS olarak değiştirin. Benim için çalıştı


1

Ben de aynı sorunu vardı ve ne sorun RAM boyutu oldu: görünüşe göre 1024 (veya herhangi bir boyut) 1024 MB farklıdır. Birimleri belirttiğinizden ve sizin için çalıştığından emin olun.


1

Config.ini dosyasındaki ramSize öğesini değiştirmek benim için çalışmadı.

Android Sanal Cihaz Düzenle penceresinde SD Kart boyutunu 1000 MiB olarak değiştirdim ... Çalıştı! :)


Cevabınızın sorunla ilgili olduğundan emin misiniz? Sorun, SD kart boyutunu değiştirirse değişmeyecek olan RAM ile ilgili olduğu görülüyor.
sınıf istifleyici

0

Android Sanal Aygıtlarını düzenlemeye gidin ve 1024 Alt Bellek Seçenekleri'ni 768 olarak değiştirin. Hala çalışmıyorsa, daha düşük ve daha düşük bir seviyede ilerlemeye devam edin.


0

AVD ayarlarındaki RAM boyutunu azaltmak benim için çalıştı. AVD'nin yavaş olması çok fazla RAM tüketebilir, bu nedenle minimumda tutmak mümkündür.



0

Diğer yanıtlar sizin için işe yaramadıysa bunu deneyin.

Benim için Bu API 27 Emulator için oldu.

API 26 Emulator gayet iyi çalıştı. Bu yüzden önce API 26 Emulator'u başlattım ve sonra kapattım.

Sonra API 27 Emulator'u başlattım ve hiç hata olmadan çalıştı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.