Всем доброго вечера!
Сравнительно недавно взялся за 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 постоянно выдавал что файл не найден, хотя я добавлял его в зависимости.