StranikS
@StranikS
web разработчик

В чем заключается ошибка FATAL EXCEPTION: GLThread?

Всем доброго вечера!

Сравнительно недавно взялся за LibGDX и Android development. Работа идет в Android Studio. При написании простейшего приложения выводящего куб, вылезла ошибка
06-24 17:56:23.639 31789-31816/com.room.game E/AndroidRuntime: FATAL EXCEPTION: GLThread 1166
Process: com.room.game, PID: 31789
java.lang.NullPointerException
at com.room.game.main_room.render(main_room.java:44)
at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:459)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1569)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1275)


Исходный код main_room.java

package com.room.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.PerspectiveCamera;
import com.badlogic.gdx.graphics.VertexAttributes.Usage;
import com.badlogic.gdx.graphics.g3d.Material;
import com.badlogic.gdx.graphics.g3d.Model;
import com.badlogic.gdx.graphics.g3d.ModelBatch;
import com.badlogic.gdx.graphics.g3d.ModelInstance;
import com.badlogic.gdx.graphics.g3d.attributes.ColorAttribute;
import com.badlogic.gdx.graphics.g3d.utils.ModelBuilder;

public class main_room extends ApplicationAdapter {

    public PerspectiveCamera Camera;
    public Model model;
    public ModelInstance instance;
    public ModelBatch modelBatch;
	
	@Override public void create(){
        Camera = new PerspectiveCamera( 67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight() );
        Camera.position.set( 10f, 10f, 10f );
        Camera.lookAt( 0, 0, 0 );
        Camera.near = 1f;
        Camera.update();

        ModelBuilder modelBuilder = new ModelBuilder();
        model = modelBuilder.createBox(
                5f, 5f, 5f,
                new Material( ColorAttribute.createDiffuse( Color.GREEN ) ),
                Usage.Position | Usage.Normal
        );

        instance = new ModelInstance( model );
    }
	@Override public void render(){
        Gdx.gl.glViewport( 0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight() );
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT );

        modelBatch.begin( Camera );
        modelBatch.render( instance );
        modelBatch.end();
    }
	@Override public void dispose(){
        modelBatch.dispose();
        model.dispose();
    }
	@Override public void resume(){}
	@Override public void resize( int width, int height ){}
	@Override public void pause(){}

}


Ошибка выскакивает на 44 строке в
modelBatch.render( instance );

Так как, пока что человек я не сведущий в таких тонкостях, хотел бы услышать ваши рассуждения. В Google нашел похожую ситуацию stackoverflow.com/questions/30830986/android-studi... однако попытка подключить то что там посоветовали, не получилось. Gradle постоянно выдавал что файл не найден, хотя я добавлял его в зависимости.
  • Вопрос задан
  • 885 просмотров
Решения вопроса 1
@Hakito
ModelBatch инициализируй
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы