Allocazione della memoria non riuscita: 8


369

Da oggi, quando ho provato a eseguire un'app in NetBeans su una piattaforma Android 2.3.3, mi mostra che:

Allocazione della memoria non riuscita: 8

Questa applicazione ha richiesto a Runtime di terminarlo in modo insolito. Per ulteriori informazioni, contattare il team di supporto dell'applicazione.

e l'emulatore non vuole iniziare.

Questo è per la prima volta quando lo vedo, e google non ha risposte per questo, ho provato anche con 2 versioni di NetBeans 6.9.1 e 7.0.1, sempre lo stesso errore.


3
Sono solo curioso di sapere perché stai usando NetBeans vs Eclipse. Uso NetBeans per altre cose (vale a dire php), ma ho appena trovato più facile usare eclipse per roba Android. Quali sono secondo te i vantaggi rispetto all'eclissi?
SBerg413,

3
Non ho mai usato Eclipse prima, ma non so perché, lo odio, il motivo, è persino complicato in GUI vs NetBeans, ma per il momento lo sto scaricando, per provare, se il problema scompare, farò Roba Android solo al suo interno.
Denees,

47
Wow, quel commento è stato un massacro virgola. Ad ogni modo, assicurati che il tuo AVD stia usando una quantità appropriata di RAM (cioè, abbastanza per funzionare ma non più di quanto il tuo computer possa gestire). Viene impostato quando si crea il dispositivo virtuale.
Glendon Trullinger,

2
Solo per riferimento, ho un Core i7 con 16 GB di RAM, max RAM fuori sul mio AVD e sfortunatamente sono tutti in ritardo: /
Jack

1
Ho una macchina Windows 8 a 64 bit in esecuzione su un processore Intel Core i7. Ho dovuto modificare le impostazioni della RAM per questo AVD (Nexus 7) fino a 512 MB per farlo funzionare.
IgorGanapolsky,

Risposte:


373

L'avevo capito. Il problema era nella quantità di RAM che avevo specificato per la macchina virtuale, ed era 1024 MB, ora ho 512 MB ed è ok, ora devo trovare come migliorare questa quantità di RAM, 512 non è così tanto, e la macchina è un po 'in ritardo.


20
Ho lo stesso problema con questo. Ho 8 GB di RAM sul mio computer, con 6 GB liberi mentre l'emulatore Android mi dice che non è possibile allocare 1 GB?
Strozykowski l'

5
Ho anche 8 GB di RAM, ma SDK mi dice che non posso usarlo più di 512 :)
Denees

5
Un'altra correzione da aggiungere. A volte, l'impostazione della RAM su valori più bassi non funziona. In tal caso, prova a lanciare l'emulatore dalla riga di comando con qualcosa di simileemulator-x86 -avd <your_avd_name>
Mykhailo Gaidai,

14
Ho appena ottenuto la soluzione: è necessario specificare la risoluzione AVD con forza: 800 x 1280. Avvia il mio AVD come quello che avevo richiesto
Nirav Shah,

4
Il problema proviene da qualsiasi skin di visualizzazione che aggiunge un valore di 1024 hw.ramSizein config.ini ( Device Ram Sizenell'elenco Hardware della GUI). Assicurati di selezionare una "skin" che abbia un valore inferiore o di utilizzare una risoluzione manuale e di rimuovere questa linea dall'elenco Hardware: non puoi rimuoverla quando è selezionata una skin.
RedGlyph

61

Riferendosi ad Android: impossibile allocare memoria e il suo primo commento sotto risposta accettata, cambiando "1024" in "1024 MB" mi ha aiutato. Patetico, ma funziona.


29
'MB' non viene riconosciuto dall'emulatore, costringendolo a utilizzare il valore predefinito di 256 MB. Tieni presente che l'importo specificato non è quello che otterrai!
RedGlyph

1
Guardando sotto App, Runnning, elenca la quantità totale di memoria a circa 240 MB, quindi sembra che ritorni a 256 MB.
jishi,

Aggiungi nella finestra Esegui configurazioni il parametro -memoria 512 da questo link lo ha risolto per me
GatesReign

43

Nel mio caso:

  • Utilizzando WXGA720 integrato per simulare un dispositivo a 720p, è sempre stato riscontrato questo errore
  • Impostare manualmente la risoluzione AVD su 720 x 1280, funziona per me

spero che aiuti ~


Simile qui, L'impostazione predefinita per WXGA800 da 7 "non è riuscita e l'impostazione 800 x 1280 funziona.
xandy

30

Funziona con 512 Mb invece. Nessuno dei metodi sopra indicati funziona per me.


L'errore "Impossibile allocare memoria: 8" è scomparso dopo aver ridotto la dimensione della RAM da 1024 a 768 Mib.
cagliata il

molti di loro stanno dicendo la stessa cosa per correggere le dimensioni di 512 MB, ma non ha funzionato affatto
Steve

30

Tutto il resto che leggi qui e altrove è pura congettura. L'unico modo sicuro per risolvere questo problema è votare questa segnalazione di bug .

Il problema non è correlato alla risoluzione dell'emulatore o OpenGL, né alla quantità di memoria del computer. Ho una memoria di 24 GB sul mio computer e la maggior parte delle volte che corro hw.ramSize=1024ottengo l'errore 8. Altre volte funziona bene senza alcuna modifica alla configurazione. Spero che tu l'abbia colto: non ho alterato affatto la configurazione dell'emulatore e tuttavia a volte funziona e a volte fallisce.

C'è un'alta probabilità che abbia qualcosa a che fare con la frammentazione della memoria. Consiglio di ridurre il valore di hw.ramSizeuna soluzione temporanea.


2
Con tutto il rispetto, la tua risposta è pure pura congettura; Per me, non ho alcun problema con qualsiasi dispositivo emulato con RAM virtuale impostata su 2048 (non ho provato più in alto). Tuttavia, tali dispositivi funzioneranno solo quando accedo al mio computer tramite Desktop remoto . Quindi per me è certamente un problema di grafica e non un problema di frammentazione della memoria. Posso dimostrarlo in modo affidabile saltando avanti e indietro la mia sessione tra locale e remoto. Stessa sessione, stessa istanza di AVD manager, nessuna terribile scheda NVIDIA e i suoi driver divini in uno scenario. (Ma questo è un rant per un altro thread).
s.co.tt

Se si tratta di "frammentazione della RAM", potremmo probabilmente testarlo utilizzando uno di quei programmi di "deframmentazione della RAM" stupidi, giusto?
Utente

17

Sembra che ci siano migliaia di correzioni diverse per questo ... nessuna delle precedenti ha funzionato per me, ma ciò che ha funzionato è stato quello di avviare l'AVD dalla riga di comando emulator-arm.exe @ AVD-NAME

In qualche modo, se lanciato con solo emulator.exe, otterrei lo stesso messaggio di errore rispetto a quando provo ad avviare tramite Eclipse.


Potresti avere lo stesso problema. I file DLL vengono caricati quando si avvia l'emulatore da una posizione e non se si avvia da un'altra.
mjaggard,

14

Ho capito che la soluzione a questo problema deriva dall'allocazione della memoria di Eclipse quando si esegue l'applicazione in modalità normale. Ho appena selezionato la casella "Esegui come amministratore" sotto le proprietà del collegamento per Eclipse e ora mi consente di allocare più memoria per l'AVD.

Spero che aiuti.


13

Ho superato questo problema modificando le dimensioni dello schermo del dispositivo.

Ho scoperto che se si specifica una RAM da 1024 MB, è necessario specificare la dimensione dello schermo del dispositivo solo in HDPI e se è RAM da 512 MB, dovrebbe essere MPPI o altri.

Quindi, possiamo chiaramente dire che la dimensione della ram dovrebbe essere specificata in base alla dimensione dello schermo. Se si specifica la dimensione di 1024 ram mantenendo le dimensioni dello schermo del dispositivo in mdpi, si verifica l'errore sopra menzionato, ad esempio "Impossibile allocare memoria: 8 Questa applicazione ha richiesto al runtime di terminarla in modo insolito.

Per ulteriori informazioni, contattare il team di supporto dell'applicazione. "

o

rendere le opzioni in AVD Manager come segue:

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

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

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

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

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

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

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


Funzionava: [2015-07-23 12:54:59 - Manager SDK] disk.dataPartition.size = 500M [2015-07-23 12:54:59 - Manager SDK] hw.gpu.enabled = yes [2015- 07-23 12:54:59 - Manager SDK] hw.audioInput = yes [23-07-2015 12:54:59 - Manager SDK] hw.sensors.orientation = yes [23-07-2015 12:54:59 - Manager SDK] hw.camera.front = none [2015-07-23 12:54:59 - Manager SDK] hw.gps = yes [2015-07-23 12:54:59 - Manager SDK] skin.dynamic = no [23-07-2015 12:54:59 - Manager SDK] hw.keyboard = yes [23-07-2015 12:54:59 - Manager SDK] vm.heapSize = 32 [23-07-2015 12:54 : 59 - SDK Manager] hw.ramSize = 512
user914425

6

Ho esaminato tutte le altre soluzioni menzionate in questo thread e non ho trovato nulla che funzionasse, quindi ho pensato un po '. La versione Google dell'API non mi funzionava per qualche motivo. L'ho cambiato di nuovo alla vaniglia e non più crash.

Devo avere qualche altro problema ma forse questo aiuterà qualcuno ...


Dispari. Ero impostato sulla versione vanilla, ma il passaggio all'API di Google l'ha risolto. +1 per l'idea comunque!
Paolo,

6

Dai un'occhiata al numero ufficiale 33930 . È stato sottolineato che potrebbe avere a che fare con l'avvio di OpenGL durante l'avvio dell'emulatore. Altri hanno scritto che si arresta in modo anomalo quando usano WXGA800-skin e suggeriscono di impostare manualmente la risoluzione su 800x1280.

Inoltre ci sono file ZIP forniti per il downgrade manuale dell'SDK di Android alla versione 19 e strumenti di piattaforma alla versione 11. Ciò può aiutare anche a risolvere temporaneamente il problema.


Questo potrebbe essere correlato al mio problema. I file DLL vengono caricati quando si avvia l'emulatore da una posizione e non se si avvia da un'altra.
mjaggard,

Deve esserci di più. Innanzitutto impostandolo su WXGA800, quindi cambiandolo con una risoluzione manuale di 1280x800 si blocca ancora AVD. Rimuovere solo hw.ramSize=1024il problema risolto (non è possibile farlo se si seleziona WXGA, è necessario utilizzare una risoluzione manuale delle impostazioni).
RedGlyph

5

Ho 16 GB e un proc quad core da 3,4 Ghz nella mia macchina. La macchina virtuale non mi permette neanche di eseguirla a 1024. L'ho portato a 878 MB perché non è riuscito a 880 con lo stesso messaggio. Questo sembra essere il più RAM che posso allocare all'emulatore. È ancora lento ma presumo sia migliore di 512 MB.


5

Modifico le impostazioni DPI del mio monitor dalle opzioni di avvio di AVD e le ho sincronizzate con le impostazioni originali e attuali del mio monitor, e ha funzionato.


4

Ho risolto inserendo come dimensione della memoria 2 volte la dimensione della RAM e ponendo la dimensione della memoria SD uguale alla dimensione della RAM.


3

Ho avuto lo stesso problema, ma prima ho riscontrato il problema mi ha chiesto di acquisire una fonte video.

Ho disabilitato il supporto della fotocamera e sono stato in grado di utilizzare 1024MB of RAM.

Utilizzando Windows 64bit, Xoom (Android 3.0).


3

Nel mio caso, cambiare la risoluzione dello schermo da WVGA720 a WSVGA funziona per me.


3

Il problema è nella frammentazione della memoria. Il sistema operativo deve allocare tutto il ram specificato per vm (diciamo 1Gb) come un blocco continuo. A volte non esiste un tale blocco. Per risolverlo chiudere i programmi in esecuzione, quindi eseguire avd e avviare la macchina virtuale.


2

Ciò che ha funzionato per me su Windows è stato:

1) Closing Eclipse 2) Esecuzione dell'interfaccia utente Avd 3) Chiusura di tutti i processi in esecuzione, in particolare quelli che hanno una memoria pesante, come Chrome, explorer.exe, ecc. 4) Avvia l'emulatore 5) Win


2

Assicurarsi che IntelHAXM sia installato correttamente. Non è sufficiente scaricarlo e "installarlo" tramite SDK Manager. È necessario installarlo manualmente da:

android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

Inoltre, assicurati che la tecnologia virtuale Intel sia abilitata nel tuo BIOS.

Segui la guida su developer.android.com o le istruzioni di installazione di Intel .


2

Hai solo bisogno di modificare la RAM del tuo dispositivo virtuale, rendendolo più basso! Prova 20 MB e funzionerà!


1

Ho notato che era correlato a solo un avd a tutti gli altri quelli con cui ho lavorato bene. L'ho eliminato e ne ho creato uno nuovo e ora funziona.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.