2011-10-20 4 views
0

libgdx에서 질감, 오디오 자원 및 월드 개체와 같은 모든 리소스를 해제하는 데 사용되었습니다. 많은 질감이 있기 때문에 게임에서 drawbles를 사용합니다. dispose()를 호출하여 텍스처 및 사운드 리소스를 사용한 관리가 해제되었습니다. 하지만 문제가 계속 반복되고 힙 크기가 커지고 있습니다. 아마도 특정 시점에서 VM이 최대 크기를 초과하면 VM이 프로세스 용 메모리를 할당 할 수 없으며 결국 결과는 OutOfMemory입니다. 이 흐름에서 나올 수 있도록 도와주세요. 응용 프로그램 흐름libgdx로 작업하는 동안 힙 크기가 증가했습니다.

  1. 홈 활동은 AndroidApplication (응용 프로그램 수신기)을 확장하는 다른 활동으로 렌더링됩니다.
  2. 그 리스너를 초기화하여 onCreate()에서 응용 프로그램 수신기를 호출합니다.
  3. 일부 게임 데이터를 컨텍스트와 함께 수신기로 전달합니다.

답변

0

Bitmap 클래스를 사용하는 경우 처분하기 전에 각각을 재활용하고 있는지 확인할 수 있습니다. 이것은 많은 기억 문제를 고쳤습니다. 그 다음 응용 프로그램이 어떻게 구성되어 있는지 좀 더 설명을해야 할 것 도움이되지 않는 경우 비트 맵 및 재활용()에

문서는 여기 http://developer.android.com/reference/android/graphics/Bitmap.html

찾을 수 있습니다. 어쩌면 잘못된 스레드 나 자원을 먹어 치우는 어떤 것이있을 수 있습니다. 메모리 문제를 진단하기 위해 어떤 도구를 사용하고 있습니까?

+0

"새로운 텍스처 (Gdx.files.internal ("top.png "));"로 게임에 텍스처를로드하고 있습니다. " 여기에 비트 맵 클래스를 사용하지 않습니다. 외부 적으로 libgdx 프레임 워크를 사용하고 있으며 dispose()에서 texture.dispose()를 호출하고 있습니다. –

+0

MAT (http://www.eclipse.org/mat/)를 사용하여 몇 가지 덤프를 분석하고 가장 많은 공간을 차지하고있는 것을 보았습니까? 가는 동안 발견되는 몇 가지 흥미로운 것들이 있습니다. 메모리가 지속적으로 증가합니까? 활동이 일시 중지되고 다시 시작될 때 또는 응용 프로그램의 일부 동작으로 인해 증가합니까? – Jason

+0

나는 그것을 살펴볼 것이다 –

관련 문제