Buggy code:
public class GameScreen extends InputAdapter implements Screen , ContactListener { private final float TIME_STEP = 1 // 300.0F ; private SleepRunner game ; private Box2DDebugRenderer debugRenderer ; private OrthographicCamera backgroundCamera ; private OrthographicCamera gameCamera ; private OrthographicCamera uiCamera ; private BackgroundStage backgroundStage ; private PauseStage pauseStage ; private UIStage uiStage ; private Rectangle screenRightSide ; private Rectangle screenLeftSide ; private Vector3 touchPoint ; private GestureDetector gestureDetector ; private InputMultiplexer im ; private Array < MapChunk > removalMapChunks = new Array < MapChunk > ( ) ; private Array < MapChunk > mapChunks = new Array < MapChunk > ( ) ; private MapChunk currentMapChunk ; private NightmareObject nightmare ; private PlayerObject player ; private World world ; private BitmapFont scoreFont ; private BitmapFont debugFont ; private SpriteBatch batch ; private float deathTimer = 2 ; private float accumulator = 0.0F ; private int playTimes ; private int gameState ; public GameScreen ( SleepRunner sleepRunner ) { } private void setupTouchControlAreas ( ) { } private void desktopListener ( ) { } private void setupWorld ( ) { } @ Override public boolean touchDown ( int x , int y , int pointer , int button ) { } @ Override public boolean touchUp ( int screenX , int screenY , int pointer , int button ) { } private boolean rightSideTouched ( float x , float y ) { } private boolean leftSideTouched ( float x , float y ) { } private void translateScreenToWorldCoordinates ( int x , int y ) { } public void restartGame ( ) { app . log ( "GameScreen" , "Restarting<seq2seq4repair_space>the<seq2seq4repair_space>game." ) ; <START_BUG> input . setInputProcessor ( gestureDetector ) ; <END_BUG> for ( MapChunk mapChunk : mapChunks ) { mapChunk . destroy ( ) ; removalMapChunks . add ( mapChunk ) ; } removeRemovalMapChunks ( ) ; createMapChunks ( ) ; nightmare . dispose ( ) ; player . dispose ( ) ; nightmare = new NightmareObject ( world ) ; player = new PlayerObject ( world ) ; uiStage . reset ( ) ; accumulator = 0.0F ; deathTimer = 2 ; gameState = Constants . GAME_READY ; } public void update ( float delta ) { } private void updateGameReady ( ) { } private void updateGameRunning ( float delta ) { } private void updateGamePaused ( ) { } private void updateGameOver ( ) { } private void updatePlayer ( float delta ) { } private void updateMapChunks ( float delta ) { } private void removeRemovalMapChunks ( ) { } private void createMapChunks ( ) { } private void doPhysicsStep ( float delta ) { } public void draw ( ) { } private void drawGameReady ( ) { } private void drawGameRunning ( ) { } private void drawGamePaused ( ) { } private void drawGameOver ( ) { } public void drawMapChunks ( ) { } public void setGameState ( int state ) { } public void setInputProcessor ( int input ) { } @ Override public void show ( ) { } @ Override public void render ( float delta ) { } @ Override public void resize ( int width , int height ) { } @ Override public void pause ( ) { } @ Override public void resume ( ) { } @ Override public void hide ( ) { } @ Override public void dispose ( ) { } @ Override public void beginContact ( Contact contact ) { } @ Override public void endContact ( Contact contact ) { } @ Override public void preSolve ( Contact contact , Manifold oldManifold ) { } @ Override public void postSolve ( Contact contact , ContactImpulse impulse ) { } private class GestureListener extends GestureDetector . GestureAdapter { @ Override public boolean fling ( float velocityX , float velocityY , int button ) { } } public MapChunk getCurrentMapChunk ( ) { } public NightmareObject getNightmare ( ) { } public PlayerObject getPlayer ( ) { } public World getWorld ( ) { } public int getGameState ( ) { } }

Fix:
input . setInputProcessor ( im ) ;