Вызов RayHandler#render() приводит к сбою Android

У меня проблема с методом RayHandler.render() и RayHandler.updateAndRender(). Он отлично работает на рабочем столе, но, к сожалению, всякий раз, когда он вызывается в Android, он просто падает. Logcat говорит следующее:

05-31 20:15:38.383 27336-27398/(Hidden package name) A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0xffffff81b6f680 in tid 27398 (GLThread 13703)

Я очень расстроен и не знаю, почему это происходит. Мой код выглядит так:

public class GameWorld {

private final GameScene scene;
public final World gtxWorld;
public final RayHandler rayHandler;

private PointLight l;
private List<Entity> entities = new ArrayList<Entity>(16);

public GameWorld(GameScene scene){
    this.scene = scene;
    this.gtxWorld = new World(new Vector2(0, 0), false);
    this.rayHandler = new RayHandler(this.gtxWorld);

    // rayHandler.setAmbientLight(.9f);

    // l = new PointLight(rayHandler, 50, Color.WHITE, 0.1F, 0F, 0);
    // l.setXray(true); // Still crashes even without this
}

public void draw(Batch batch){
    batch.begin();

    for(Entity entity:this.entities)
        entity.draw(batch);

    batch.end();

    this.rayHandler.updateAndRender();

    // l.setPosition((float) (Gdx.input.getX()-GdxGame.GAME_WIDTH/2F)/GdxGame.GAME_WIDTH, (float) (Gdx.input.getY()-GdxGame.GAME_HEIGHT/2F)/GdxGame.GAME_HEIGHT);
}

public void dispose(){
    this.gtxWorld.dispose();
    this.rayHandler.dispose();
}

public void spawnEntity(Entity entity){
    this.entities.add(entity);
}

public void destroyEntity(Entity entity){
    this.entities.remove(entity);
}

}

^^ Эта часть рисуется в методе Stage#draw() после рисования Stage. Я использую Galaxy S7 и не могу проверить его где-либо еще.

0 ответов

Другие вопросы по тегам