Libgdx 正在发出致命信号11

Libgdx 正在发出致命信号11,libgdx,dispose,screens,Libgdx,Dispose,Screens,在我的libgdx游戏中,我有多个屏幕。我有点不确定如何正确使用dipose()方法 在每个屏幕中都有我创建的特定变量,然后在dispose()方法中进行dispose。我在网上读到,如果我不处理,它会导致内存泄漏和程序崩溃 但是,出于某种原因,每当我在菜单屏幕中处理任何东西时,都会导致应用程序崩溃(致命信号11)。(在切换不同屏幕时,该错误也会在其他随机时间发生)。我不知道这是否与我在每个类中用相同的名称命名我的文件有关 例如,在每个类的create()函数中,我执行以下操作: batch =

在我的libgdx游戏中,我有多个屏幕。我有点不确定如何正确使用
dipose()
方法

在每个屏幕中都有我创建的特定变量,然后在
dispose()
方法中进行dispose。我在网上读到,如果我不处理,它会导致内存泄漏和程序崩溃

但是,出于某种原因,每当我在
菜单屏幕中处理任何东西时,都会导致应用程序崩溃(
致命信号11
)。(在切换不同屏幕时,该错误也会在其他随机时间发生)。我不知道这是否与我在每个类中用相同的名称命名我的文件有关

例如,在每个类的
create()
函数中,我执行以下操作:

batch = new SpriteBatch();
shapeRenderer = new ShapeRenderer();
batch.dispose();
shapeRenderer.dispose();
然后在每个类的
dispose()
函数中,我执行以下操作:

batch = new SpriteBatch();
shapeRenderer = new ShapeRenderer();
batch.dispose();
shapeRenderer.dispose();
在每个类中保持相同的变量名会影响我的代码吗?除此之外,我手动处理每个图像、声音和字体

即使我没有在我的
MenuScreen
类中处理任何东西,在切换屏幕时,
Fatal Signal 11
错误也会不时发生

很抱歉说得含糊不清,但我不确定是什么导致了这个错误。切换屏幕时也有大约1秒的延迟

注:

切换屏幕时,我会:

game.setScreen(new ScreenName(game));
game
只是我的
MainClass
的一个实例:

final MainClass game;

既然您正在传递主类的实例,为什么要在每个类中创建一个新批?只需使用主类的批处理

既然要传递主类的实例,为什么要在每个类中创建新批处理?只需使用主类的批处理