2017-05-14 16 views
1

私は、ツールをFreetypeのと私のプロジェクトを作成し、そしてintellejのため、およびAndroidのスタジオで実行しようとするとBOX2D:Libgdx BitmapFont NullPointerExceptionが

BitmapFont font = new BitmapFont(); 

それは私にnullポインタ例外を提供します。私は手作業でフォントをassestsフォルダに入れてみましたが、それは役に立たなかった。私は正常にデフォルトプロジェクト(赤い背景と画像)を正常に実行することができましたが、決してそのラインを正常に走らせることはできませんでした。

+0

BitmapFont()を呼び出すと、実際にLibGDX JAR(https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/)のフォント(Arial-15)が読み込まれます。 g2d/BitmapFont.html#BitmapFont--)。だから、おそらくあなたのラッパークラスはnullまたは何か、または多分あなたのLibGDX JAR(おそらく)で起こっている奇妙なことがありますか? – mcw

+0

それで何ができますか? – kschnied

+0

あなたのクラスのより多くのコードを表示する、私はあなたがいくつかの他の問題があると思います – Aryan

答えて

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(); 

は内部 フォントファイルcom/badlogic/gdx/utils/arial-15.fntや画像ファイルcom/badlogic/gdx/utils/arial-15.pngのためのもう一つのための2つのFileHandle 1を作成します。私は思っていません、それはNPEが他のいくつかの可能性があります投げるException

関連する問題