2011-12-10 57 views
1

我正在做一個測驗應用程序,當用戶選擇一個類別(例如C#)時,該類別中的20個問題將逐一出現。GC_FOR_MALLOC釋放錯誤,如何避免這種情況?

編碼主要完成。當我測試時,前兩次嘗試正常工作。然後,我開始收到這些錯誤(我知道這是釋放內存):

GC_FOR_MALLOC freed 4136 objects/374744 bytes in 66ms 
GC_FOR_MALLOC freed 2345 objects/374744 bytes in 51ms 
GC_FOR_MALLOC freed 3453 objects/374744 bytes in 62ms 
GC_FOR_MALLOC freed 1245 objects/374744 bytes in 26ms 
GC_FOR_MALLOC freed 9893 objects/374744 bytes in 86ms 

我試圖重新啓動日食,清洗工程,重新啓動仿真器,清除我的應用程序的Dalvik的高速緩存。此後沒有任何工作,即使logcat沒有記錄任何東西。

我如何找到這個罪魁禍首?我從來沒有創建過這麼多的對象,但GC_FOR_MALLOC正在釋放它們。

任何人都可以建議良好的做法,以避免這些類型的錯誤在未來?

回答

1

您可以使用DDMS/ADT的Allocation Tracker來查明創建了哪種對象以及哪些例程負責這個對象。 Tracker使用分配點的堆棧軌跡顯示所有分配的對象。

相關問題