Libgdx BitmapFont NullPointerException

时间:2017-05-14 03:07:14

标签: java android libgdx

我使用Freetype,工具和box2d为intellej创建了我的项目,并尝试在android studio中运行:

BitmapFont font = new BitmapFont();

它给了我一个空指针异常。我已经尝试手动将字体放在assests文件夹中,但这没有帮助。我能够成功运行默认项目(红色背景和图片),但从未成功运行该行。

1 个答案:

答案 0 :(得分:2)

可能的原因可能是您正在初始化本地BitmapFont而不是您在渲染方法中使用的全局。

public class MyGdxGame extends Game {

    Texture texture;
    SpriteBatch spriteBatch;

    BitmapFont font;

    @Override
    public void create () {

        BitmapFont font=new BitmapFont();  // You initialise local, global is still Null

        texture=new Texture("badlogic.jpg");
        spriteBatch=new SpriteBatch();
    }

    @Override
    public void render() {
        super.render();

        Gdx.gl.glClearColor(1,1,1,1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        spriteBatch.begin();
        spriteBatch.draw(texture,100,100);
        font.draw(spriteBatch,"HELLO WORLD",100,100); // Now here NPE
        spriteBatch.end();
    }
}

默认构造函数

BitmapFont font=new BitmapFont();

在内部创建两个FileHandle 字体文件com/badlogic/gdx/utils/arial-15.fnt和另一个用于imageFile com/badlogic/gdx/utils/arial-15.png。我不认为,它抛出NPE可能是其他Exception