2011-10-20 39 views
0

在libgdx中,我用來釋放所有資源,例如紋理,音頻資源以及世界對象。由於我有很多紋理,我的遊戲中有可用的drawable。通過調用dispose()來發布紋理和聲音資源管理。但問題仍然存在,堆大小正在增加。可能在某個時刻,如果虛擬機超過最大大小,VM將無法爲進程分配內存,最終結果爲OutOfMemory。請幫我出來。應用程序流程使用libgdx時堆大小增加

  1. 首頁活動呈現給另一個擴展了AndroidApplication(應用程序偵聽器)的Activity。
  2. 因爲我通過在此處初始化偵聽器來調用onCreate()中的應用程序偵聽器。
  3. 將一些遊戲數據與上下文一起傳遞給偵聽器。

回答

0

如果您使用的是Bitmap類,那麼您可能需要在處理之前檢查是否在調用每個循環。這固定了我的許多記憶問題。位圖和再循環()

文檔都可以在這裏 http://developer.android.com/reference/android/graphics/Bitmap.html

發現如果沒有幫助,那麼你將不得不描述更多的應用程序是如何構成的。也許你有錯誤的線索或者是資源耗盡的東西。你用什麼工具來診斷你的記憶問題?

+0

我將紋理加載到我的遊戲中作爲「新紋理(Gdx.files.internal(」top.png「));」。這裏我沒有使用位圖類。外部我只使用libgdx framwork並在dispose()中我調用了texture.dispose()。 –

+0

您是否嘗試過使用MAT(http://www.eclipse.org/mat/)來分析一些垃圾堆並查看哪些空間吃得最多?通過它們可以發現一些有趣的事情。 內存是否不斷增加,當活動暫停和恢復時,或者通過應用程序中的某些操作? – Jason

+0

我將會看看它 –