2017-06-24 27 views
0

LibgdGdxを使用してアンドロイドプロジェクトを作成しました。私は必要なすべてのアセットをロードするAssetManagerクラスを作成しますが、プロジェクトを実行するとttfファイルがロードされているときにエラーが発生します。 AssetManagerのコード:TTFファイルの読み込み中にエラーが発生しました - Libgdx

public AssetManager manager; 

public AssetsManager(){ 

    manager = new AssetManager(); 
    loadAssets(); 
} 


public void loadAssets(){ 
    loadTtf("assets/Birds.TTF"); 
} 

void loadTtf(String path){ 
    FileHandleResolver resolver = new InternalFileHandleResolver(); 
    manager.setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver)); 
    manager.setLoader(BitmapFont.class, "assets/Birds.TTF", new FreetypeFontLoader(resolver)); 

    FreetypeFontLoader.FreeTypeFontLoaderParameter font = new FreetypeFontLoader.FreeTypeFontLoaderParameter(); 
    font.fontFileName = path; 
    font.fontParameters.size = 20; 
    manager.load(path , BitmapFont.class, font); 
} 

私は私が持っているエラーの一部

BitmapFont font = manager.manager.get("assets/Birds.TTF",BitmapFont.class);

このコードをTTFファイルをロードしよう:私が言ったように

com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Error reading file: assets/Birds.TTF (Internal) 
                   at com.badlogic.gdx.assets.AssetManager.handleTaskError(AssetManager.java:579) 
                   at com.badlogic.gdx.assets.AssetManager.update(AssetManager.java:380) 
                   at com.poum.game.Main.render(Main.java:33) 
                   at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:459) 
                   at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1649) 
                   at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1354) 

、プロジェクトはAndroidで実行されます

ありがとうすべて

+0

どこ 'Birds.TTF'ファイルはありますか?それはアンドロイドモジュールの資産フォルダですか? – Aryan

+0

はい、ファイルがアンドロイドモジュールのassetsフォルダにあります –

答えて

0
String path="Birds.TTF";  //can be inside nested folder 
String fileName = "Birds.TTF" ; // it can be any name with extension, will use to load and retrieve 

このように負荷:

manager=new AssetManager(); 
FileHandleResolver resolver = new InternalFileHandleResolver(); 
manager.setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver)); 
manager.setLoader(BitmapFont.class, ".TTF", new FreetypeFontLoader(resolver)); 

FreetypeFontLoader.FreeTypeFontLoaderParameter parms = new FreetypeFontLoader.FreeTypeFontLoaderParameter(); 
parms.fontFileName = path; // path of .TTF file where that exist 
parms.fontParameters.size = 20; 
manager.load(fileName, BitmapFont.class, parms); // fileName with extension, sameName will use to get from manager 

manager.finishLoading(); //or use update() inside render() method 

があなたのスクリーンショットから、AssetManager

BitmapFont font=manager.get(fileName,BitmapFont.class); 

EDIT

からフォントを取得し、私はあなたのファイル名Birds.ttfないを得ました

ので

String path = "Birds.ttf"; 
String fileName = "Birds.ttf" 

Androidのファイル・システムを変更するには、大文字と小文字が区別されます。デスクトップモジュールの

実行構成は次のようにする必要があります:

enter image description here

+0

あなたのコードを試しましたが、私は同じエラーがあります –

+0

あなたのリソースと共にあなたの資産フォルダをスクリーンショットで表示できますか? – Aryan

+0

https://ibb.co/nfLeTQ –

関連する問題