2011-08-23 70 views
5

我得到了OutOfMemory異常,而在這兩個仿真器和設備(平板電腦宏碁和三星Galaxy)上運行我的項目顯示內存不足器件和模擬器

com.android.launcher意外停止的應用程序啓動進程。

我已經將模擬器的虛擬機大小增加到了256MB,但仍然沒有發生異常。我怎樣才能避免這種異常?我怎樣才能增加模擬器和設備堆的進程大小?

請參閱to this question

+1

它是否與您的項目特別相關?你做什麼,你得到了內存異常?什麼是堆棧跟蹤? – codeScriber

+0

原因可能在你的項目中嗎?如果是的話,那麼你可能不得不透露更多的細節項目的作用,也許試圖找到可能負責行爲的代碼段。你有沒有試圖找到一個更大的虛擬大小可以處理該項目? –

+0

當我運行我的應用程序...我內存不足,如果我強制關閉這個,我通常可以運行應用程序...即使在應用程序的中間,我也得到這個錯誤。 – Taruni

回答

5

我不知道你正在運行什麼樣的應用,但它可能是你在你的應用程序中的內存泄漏。那麼你設置虛擬機的規模有多大並不重要。

查看下面的視頻,瞭解如何在自己的應用程序中查找內存泄漏。適用於設備和仿真器。 (上週我發現了一個非常大的內存泄漏,我不知道我曾在應用程序)

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

+0

視頻中的演示文稿非常有用 - 做這件事的人是Google的Android團隊(演講來自Google IO)。關於內存分析工具的部分非常好。 –

+0

據我所知,這是在應用程序中查找內存泄漏的唯一簡單方法。這對我幫助很大。 –

0

除非你正在做一些極端的,實際上需要大量的內存,你不應該不得不求助於增加內存佔用量。造成這種錯誤的錯誤可能會超出您提供的任何額外內存。

仔細看看內存不足錯誤發生之前。我最近看到一個,因爲我造成了無盡的配置更改循環。停止那無限循環的唯一的東西就是內存不足。

雖然錯誤上面的幾行看起來很好,但我意識到日誌條目的數量遠遠高於正常數量,因爲它反覆運行了我的活動的初始化。

您的問題可能會有所不同,但我確信增加堆大小並不能解決問題。

+1

正確增加堆大小並不能解決此問題... – Taruni