2011-08-23 12 views
5

sto ottenendo eccezione OutOfMemory durante l'esecuzione il mio progetto sia emulatore e il dispositivo (tablet Acer e Samsung Galaxy) che mostraOutOfMemory su entrambi i dispositivi ed emulatore

il processo di avvio delle applicazioni com.android.launcher si è fermato improvvisamente.

Ho aumentato la dimensione della macchina virtuale dell'emulatore a 256 MB, tuttavia non è stata apportata alcuna modifica in tale eccezione. Come posso evitare questa eccezione? E come posso aumentare la dimensione del processo dell'heap sia per l'emulatore che per il dispositivo?

Fare riferimento to this question

+1

può essere che sia specificamente correlato al tuo progetto? cosa fai che ottieni un'eccezione di memoria? qual è lo stacktrace? – codeScriber

+0

La causa potrebbe essere nel tuo progetto? Se sì, allora potrebbe essere necessario rivelare maggiori dettagli su cosa fa il progetto e magari cercare di trovare pezzi di codice che potrebbero essere responsabili del comportamento. Hai provato a scoprire se una dimensione vm ancora più grande poteva gestire il progetto? –

+0

Quando eseguo la mia applicazione ... sto esaurendo la memoria e se forza chiudere questo posso normalmente eseguire l'applicazione ... anche nel mezzo dell'applicazione sto ricevendo questo errore. – Taruni

risposta

5

Non so che tipo di applicazione è in esecuzione, ma è possibile che si dispone di una perdita di memoria nell'applicazione. Quindi non importa quanto tu imposti la dimensione della tua macchina virtuale.

Guarda il video qui sotto su come trovare le perdite di memoria nella tua applicazione. Funziona su dispositivi ed emulatori. (Ho trovato una grande perdita di memoria la settimana scorsa, che non sapevo di avere nell'applicazione)

http://www.youtube.com/watch?v=_CruQY55HOk&feature=player_embedded

+0

La presentazione nel video è molto utile - il ragazzo che lo fa è nel team Android di Google (il discorso è di Google IO). Le parti relative allo strumento di analisi della memoria sono davvero buone. –

+0

Per quanto ne so, è l'unico modo semplice per trovare perdite di memoria nella tua applicazione. Mi ha aiutato molto. –

0

A meno che non si sta facendo qualcosa di estremo e in realtà bisogno di un sacco di memoria, non si dovrebbe devono ricorrere all'aumento dell'impronta di memoria. Il bug che sta causando questo probabilmente verrà eseguito su qualsiasi memoria aggiuntiva tu gli dai.

Dai uno sguardo più da vicino a ciò che precede l'errore di memoria esaurita. L'ho visto di recente, perché ho causato un ciclo infinito di modifica della configurazione. L'unica cosa che ha fermato quel ciclo infinito stava esaurendo la memoria.

Mentre le poche righe sopra l'errore sembravano soddisfacenti, mi sono reso conto che il numero di voci di registro era molto più alto del normale, perché ha eseguito ripetutamente l'inizializzazione per la mia attività.

Il problema potrebbe essere diverso, ma sono abbastanza sicuro che l'aumento della dimensione dell'heap non risolverà il problema.

+1

u r corretto aumentare la dimensione dell'heap non risolve questo problema ... – Taruni

Problemi correlati