Я создал игру libdx, и она отлично работает в версиях для Android и ПК. В игре у меня есть птица, которая летает вокруг и должна избегать других объектов. Если он касается объектов, игра окончена и появляется экран окончания игры.
В моем приложении GWT при первом появлении экрана завершения игры у меня нет проблем, но если я перезапущу игру и снова запущу, я получаю сообщение об ошибке:

В консоли Google Chrome ошибка возникает в строке «throw new RuntimeException(t)» javascript. Я менее знаком с Javascript. Кто-нибудь сталкивался с подобной проблемой раньше с Animation Scheduler?
AnimationScheduler.get().requestAnimationFrame(new AnimationCallback() {
@Override
public void execute (double timestamp) {
try {
mainLoop();
} catch (Throwable t) {
error("GwtApplication", "exception: " + t.getMessage(), t);
throw new RuntimeException(t);
}
AnimationScheduler.get().requestAnimationFrame(this, graphics.canvas);
}
}, graphics.canvas);
}В моем основном коде Libgdx следующие строки кода вызываются, когда птичка падает и игра завершается, так что, скорее всего, возникает ошибка:
Gdx.app.postRunnable(new Runnable() {
@Override
public void run() {
Sounds.gameOverSound.play(SettingsManager.gameVolume);
highScore.stopCounting();
for (Dodgeable dodgeable : dodgeables.activeDodgeables) {
dodgeable.reset();
}
dodgeables.resetSpawnTimes();
for (Sound sound : Sounds.activeSounds){
//Stop all sounds currently playing
sound.stop();
Sounds.activeSounds.remove(sound);
}
//Reset all notifications that are active so they stop displaying
Notifications.ExclamationMark.resetNotifications();
Array<Body> bodies = new Array<Body>();
world.getBodies(bodies);
for (int i = 0; i < bodies.size; i++) {
world.destroyBody(bodies.get(i));
}
dispose();
game.setScreen(new GameOverScreen(game, playServices, databaseAndPreferenceManager, highScore));
}
});



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Решил... оказывается, в моем методе dispose() я избавлялся от звука из другого класса, а не воссоздавал звук. Поэтому я избавлялся от нулевого звука, который вызывал ошибку.