在libgdx中渲染时出现OutOfMemoryError

时间:2012-04-19 09:37:09

标签: java

我必须在render()中使用libgdx渲染网格数组。我使用了handler,因为每次我在meshArr数组中的getMeshToRender()方法中获取新数据。

        onCreate()
        {
          handler.removeCallbacks(sendUpdatesToUI);  
          handler.postDelayed(sendUpdatesToUI, 1000); // 1 second
        }

        Runnable sendUpdatesToUI = new Runnable() 
     {
            public void run() 
            {
                //DisplayLoggingInfo();   
                getMeshToRender();
                handler.postDelayed(this, 1000); // 1 seconds
            }
        };          

   getMeshToRender()

 {

   .......
    meshArr = new Mesh[numMesh];
   .......
 }

在Render()方法中,它最初加载了meshArr,但随后崩溃了OutOfMemoryError。

任何解决方案都是难以置信的。 感谢

1 个答案:

答案 0 :(得分:0)

简单但唯一真实的答案是使用更少的内存。

要么你只是使用了太多不同的网格,你应该重新思考你的整个想法,或者你正在替换它们而不是妥善处理它们。

如果要释放未使用的网格,则应使用Mesh#dispose()