Bellek ayrılamadı: 8


369

Bugünden itibaren 2.3.3 Android platformunda NetBeans'te bir uygulama çalıştırmayı denediğimde bana şunu gösteriyor:

Bellek ayrılamadı: 8

Bu uygulama Runtime'dan alışılmadık bir şekilde sonlandırmasını istedi. Daha fazla bilgi için lütfen uygulamanın destek ekibiyle iletişime geçin.

ve Emulator başlamak istemiyor.

Bu, ilk gördüğümde ve google'ın bunun için hiçbir yanıtı yok, NetBeans 6.9.1 ve 7.0.1'in 2 sürümüyle bile denedim, aynı hata.


3
Neden NetBeans vs Eclipse kullandığınızı merak ediyorsunuz. Diğer şeyler (yani php) için NetBeans kullanıyorum, ama sadece android şeyler için tutulma kullanmayı daha kolay bulduk. Tutulmaya göre faydaları nelerdir?
SBerg413

3
Eclipse'i daha önce hiç kullanmadım, ama neden bilmiyorum, neden nefret ediyorum, nedeni, GUI ile NetBeans arasında bile karmaşık, ancak indirdiğim an için, eğer sorun ortadan kalktığında, Sadece Android şeyler.
Ağustos'ta

47
Vay, bu yorum bir virgül katliamıydı. Her neyse, AVD'nizin uygun miktarda RAM kullandığından emin olun (yani çalıştırmak için yeterli, ancak bilgisayarınızın işleyebileceğinden daha fazla değil). Bu, sanal cihazı oluşturduğunuzda ayarlanır.
Glendon Trullinger

2
Sadece referans olarak, AVD'lerim üzerinde koç maxxed koç, 16 gb ram ile bir Core i7 var ve hepsi ne yazık ki laggy: /
Jack

1
Intel core i7 işlemcide çalışan bir Windows 8 64bit makinem var. Çalışması için bu AVD (Nexus 7) için ram ayarlarını 512mb'ye düşürmem gerekiyordu.
IgorGanapolsky

Yanıtlar:


373

Bunu anladım. Sorun, sanal makine için belirlediğim koç miktarıydı ve 1024MB'dı, şimdi 512MB'ım var ve tamam, şimdi bu koç miktarını nasıl geliştireceğimi bulmam gerekiyor, 512 çok fazla değil ve makine biraz laggy.


20
Bununla aynı sorunum var. Makinemde 8GB RAM var, 6GB boş oturuyor ve Android emülatörü bana 1GB ayıramadığını söylüyor?
Strozykowski

5
Bende 8GB Ram var, ama SDK bana
512'den

5
Eklemek için bir düzeltme daha. Bazen RAM'i daha düşük değerlere ayarlamak işe yaramaz. Bu durumda, komut satırından emülatörü başlatmaya çalışınemulator-x86 -avd <your_avd_name>
Mykhailo Gaidai

14
Çözüm buldum: AVD çözünürlüğünü zorla belirtmeliyim: 800 x 1280. AVD'mi istediğim gibi başlatıyor
Nirav Shah

4
Sorun hw.ramSize, config.ini dosyasına ( Device Ram SizeGUI'nin Donanım listesinde) 1024 değerini ekleyen herhangi bir ekran kaplamasından kaynaklanır . Daha düşük bir değere sahip bir "kaplama" seçtiğinizden veya manuel bir çözünürlük kullandığınızdan ve bu satırı Donanım listesinden çıkardığınızdan emin olun; bir kaplama seçildiğinde onu kaldıramazsınız.
RedGlyph

61

Android'e atıfta bulunarak : belleği ayıramadı ve kabul edilen cevap altındaki ilk yorumu, "1024" i "1024MB" olarak değiştirmek bana yardımcı oldu. Acıklı ama işe yarıyor.


29
'MB' öykünücü tarafından tanınmaz ve varsayılan 256 MB değerini kullanmaya zorlar. Belirttiğiniz miktarın alacağınız şey olmadığını unutmayın!
RedGlyph

1
Uygulamalar'a bakıldığında, Runnning, toplam bellek miktarını yaklaşık 240 MB olarak listeler, bu yüzden 256 MB'ye geri döner gibi görünür.
jishi

Run Configurations penceresinde bu bağlantıdan -memory 512 parametresi benim için düzeltildi
GatesReign

43

Benim durumumda:

  • 720p cihazı simüle etmek için yerleşik WXGA720'yi kullanarak her zaman bu hatayı aldı
  • AVD çözünürlüğünü manuel olarak 720 x 1280 olarak ayarlayın, benim için çalışıyor

umarım yardımcı olur ~


Burada benzer, 7 "WXGA800 için varsayılan başarısız oldu ve 800 x 1280 çalışıyor.
xandy

30

Bunun yerine 512 Mb ile çalışır. Yukarıdaki yöntemlerden hiçbiri benim için çalışmıyor.


RAM boyutu 1024'ten 768 Mib'ye düşürüldükten sonra "Bellek ayrılamadı: 8" hatası kayboldu.
curd0

birçoğu aynı şeyi 512 MB boyutunu düzeltmek için söylüyor ama hiç çalışmadı
Steve

30

Burada ve başka yerlerde okuduğunuz her şey saf varsayımdır. Bu sorunu çözmenin tek kesin yolu bu hata raporu için oy kullanmaktır .

Sorun, emülatör çözünürlüğü veya OpenGL ile veya bilgisayarınızın ne kadar belleğiyle ilgili değildir. Bilgisayarımda 24GB bellek var ve çoğu zaman ben hw.ramSize=1024hata 8 ile çalışıyorum. Diğer zamanlarda herhangi bir yapılandırma değişikliği olmadan gayet iyi çalışıyor. Umarım yakalamışsınızdır: Emülatör yapılandırmasını hiç değiştirmedim ve yine de bazen çalışıyor ve bazen başarısız oluyor.

Bellek parçalanmasıyla ilgili bir olasılığı yüksek. hw.ramSizeGeçici bir çözüm olarak değerini azaltmanızı öneririm .


2
Saygılarımızla, cevabınız da saf varsayımdır; Benim için, 2048'e kadar sanal RAM ayarlanmış herhangi bir taklit cihazı çalıştırmakla ilgili hiçbir sorunum yok (daha yüksek bir deneme yapmadım). Ancak bu cihazlar yalnızca makineme Uzak Masaüstü üzerinden eriştiğimde çalışır . Bu yüzden benim için bu kesinlikle bir grafik sorunu, bellek parçalanması sorunu değil. Oturumumu yerel ve uzak arasında ileri geri atlayarak bunu güvenilir bir şekilde kanıtlayabilirim. Aynı oturum, AVD yöneticisinin aynı örneği, sadece bir senaryoda korkunç NVIDIA kartları ve godawful sürücüleri yok. (Ama bu başka bir iş parçacığı için bir rant).
s.co.tt

Eğer "RAM parçalanması" ise, bu aptalca ücretsiz "RAM birleştirme" programlarından birini kullanarak test edebiliriz, değil mi?
Kullanıcı

17

Bunun için bin farklı düzeltme var gibi görünüyor ... yukarıdakilerin hiçbiri benim için işe yaramadı, ancak AVD'yi emulator-arm.exe @ AVD-NAME komut satırından başlatmaktı.

Her nasılsa sadece emulator.exe ile başlatılırsa, Eclipse ile başlatmaya çalışırken aynı hata mesajını alırdım.


Benimle aynı sorunu yaşayabilirsin. DLL dosyaları öykünücüyü başka bir yerden başlattığınızda değil, bir yerden başlattığınızda yüklenir.
mjaggard

14

Uygulamayı normal modda çalıştırdığınızda bu sorunun çözümünün Eclipse bellek ayırmasından kaynaklandığını fark ettim. Eclipse kısayol özelliklerinin altındaki "Yönetici Olarak Çalıştır" kutusunu işaretledim ve şimdi AVD için daha fazla bellek ayırmama izin veriyor.

Umarım yardımcı olur.


13

Cihazın ekran boyutunu değiştirerek bu sorunun üstesinden geldim.

1024 mb ram belirtirseniz, cihaz ekran boyutunu sadece hdpi olarak belirtmeniz gerektiğini ve 512 mb ram ise o zaman mdpi veya diğerleri olması gerektiğini buldum.

Yani, ram boyutunun ekran boyutuna göre belirtilmesi gerektiğini açıkça söyleyebiliriz. Eğer aygıt ekran boyutunu mdpi olarak tutarken 1024 ram boyutunu belirlerseniz, o zaman yukarıda belirtilen hatayla sonuçlanır.

Daha fazla bilgi için lütfen uygulamanın destek ekibiyle iletişime geçin. "

veya

AVD yöneticisindeki seçeneklerinizi aşağıdaki gibi yapın:

[2013-01-11 14:44:01 - SDK Yöneticisi] hw.sensors.orientation = evet

[2013-01-11 14:44:01 - SDK Yöneticisi] hw.camera.front = yok

[2013-01-11 14:44:01 - SDK Yöneticisi] hw.gps = evet

[2013-01-11 14:44:01 - SDK Yöneticisi] skin.dynamic = hayır

[2013-01-11 14:44:01 - SDK Yöneticisi] hw.keyboard = hayır

[2013-01-11 14:44:01 - SDK Yöneticisi] vm.heapSize = 32

[2013-01-11 14:44:01 - SDK Yöneticisi] hw.ramSize = 343


Bu işe yaradı: [2015-07-23 12:54:59 - SDK Yöneticisi] disk.dataPartition.size = 500M [2015-07-23 12:54:59 - SDK Yöneticisi] hw.gpu.enabled = evet [2015- 07-23 12:54:59 - SDK Yöneticisi] hw.audioInput = evet [2015-07-23 12:54:59 - SDK Yöneticisi] hw.sensors.orientation = evet [2015-07-23 12:54:59 - SDK Yöneticisi] hw.camera.front = yok [2015-07-23 12:54:59 - SDK Yöneticisi] hw.gps = evet [2015-07-23 12:54:59 - SDK Yöneticisi] skin.dynamic = hayır [2015-07-23 12:54:59 - SDK Yöneticisi] hw.keyboard = evet [2015-07-23 12:54:59 - SDK Yöneticisi] vm.heapSize = 32 [2015-07-23 12:54 : 59 - SDK Yöneticisi] hw.ramSize = 512
user914425

6

Bu iş parçacığında bahsedilen diğer tüm çözümlerden geçtim ve bu yüzden biraz dinked çalışıyordu bir şey bulamadık. API'nın Google sürümü bir nedenden dolayı bana başarısız oluyordu. Onu tekrar vanilyaya çevirdim ve artık kaza yok.

Başka bir sorunum olmalı ama belki bu birine yardımcı olacaktır ...


Garip. Vanilya sürümüne ayarlanmıştım, ancak Google API'sına geçirmek bunu çözdü. Yine de fikir için +1!
Paul

6

Resmi konuya bir göz atın 33930 . Emülatörün başlatılması sırasında OpenGL'nin başlatılması ile ilgili olabileceğine dikkat çekilmektedir. Diğerleri sadece WXGA800-skin kullandıklarında çökmeyi yazdılar ve çözünürlüğü manuel olarak 800x1280'e ayarlamayı önerdiler.

Ayrıca, Android SDK'nızı sürüm 19'a ve plattform araçlarını sürüm 11'e manuel olarak düşürmek için sağlanan ZIP dosyaları vardır. Bu, sorunu geçici olarak düzeltmeye de yardımcı olabilir.


Bu benim sorunumla ilgili olabilir. DLL dosyaları öykünücüyü başka bir yerden başlattığınızda değil, bir yerden başlattığınızda yüklenir.
mjaggard

Daha fazlası olmalı. İlk olarak WXGA800 olarak ayarladıktan sonra 1280x800 manuel çözünürlüğüne değiştirmek hala AVD'yi kilitliyor. Yalnızca hw.ramSize=1024sorunu gidermek sorunu çözer (WXGA seçildiyse manuel çözünürlük ayarları kullanmanız gerekir).
RedGlyph

5

Makinemde 16 GB ve 3.4 Ghz dört çekirdekli proc var. Sanal makine de 1024'te çalıştırmama izin vermiyor. Aynı mesajla 880'de başarısız olduğu için 878MB'ye kadar çıkardım. Bu, emülatöre atayabileceğim en koç gibi görünüyor. Hala yavaş ama 512MB'den daha iyi olduğunu düşünüyorum.


5

Monitör DPI ayarlarımı AVD'nin başlatma seçeneklerinden değiştirip monitörünüzün orijinal ve geçerli ayarıyla senkronize ettim ve çalıştı.


4

RAM boyutunun 2 katı depolama boyutu olarak ve SD depolama boyutunu RAM boyutuyla aynı şekilde koyarak çözdüm.


3

Aynı sorunu yaşadım ama sorunu almadan önce bir video kaynağı çekmemi istedi.

Kamera desteğini devre dışı bıraktım ve kullanabildim 1024MB of RAM.

Windows'u kullanma 64bit, Xoom (Android 3.0).


3

Benim durumumda, WVGA720'den WSVGA'ya ekran çözünürlüğü benim için çalışıyor.


3

Sorun hafıza parçalanmasında. İşletim Sistemi, vm (1Gb diyelim) için belirttiğiniz tüm ram'ları bir sürekli blok olarak ayırmalıdır. Bazen böyle bir blok yoktur. Düzeltmek için çalışan programları kapatın, ardından avd'yi çalıştırın ve sanal makinenizi başlatın.


2

Windows'ta benim için işe yarayan şuydu:

1) Eclipse'i Kapatma 2) Avd UI'yi Çalıştırma 3) Özellikle Chrome, explorer.exe vb. Gibi bellekte ağır olanlar olmak üzere tüm çalışan işlemleri kapatma 4) Emülatörün başlatılması


2

IntelHAXM'in doğru kurulduğundan emin olun. SDK Yöneticisi üzerinden indirmek ve "yüklemek" için yeterli değildir. Manuel olarak yüklemeniz gerekir:

android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

Ayrıca, BIOS'unuzda Intel Sanal Teknolojisinin etkin olduğundan emin olun.

Developer.android.com veya Intel kurulum talimatlarındaki kılavuzu izleyin .


2

Sadece sanal cihazınızın koçunu düzenlemeniz, daha düşük olması gerekir! 20 MB deneyin ve işe yarayacak!


1

Ben iyi çalıştı olanlar geri kalanı sadece bir avd ile ilgili olduğunu fark ettim. Sildim ve yeni bir tane oluşturdum ve şimdi çalışıyor.

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.