2017-06-24 31 views
0

Ich habe ein Android-Projekt mit LibgdGdx erstellt, wo ich eine AssetManager-Klasse erstellen, wo ich alle Assets laden, aber wenn ich das Projekt ausführen, habe ich einen Fehler, wenn eine ttf-Datei geladen wird. Der Code der Assetmanager:Fehler beim Laden der TTF-Datei - 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); 
} 

Ich versuche, die ttf-Datei durch diesen Code

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

Teil des Fehlers zu laden Ich habe:

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) 

wie gesagt , das Projekt läuft unter Android

Vielen Dank für alles

+0

wo ist dein 'Birds.TTF'-Datei? Ist es in Assets Ordner von Android-Modul? – Aryan

+0

Ja, die Datei befindet sich im Assets-Ordner des Android-Moduls –

Antwort

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 

laden auf diese Weise:

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 

abrufen Schriftart aus AssetManager

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

EDIT

Von Ihrem Screenshot habe ich Ihre Dateinamen Birds.ttf nichtändern

so

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

Android-Dateisystem Groß- und Kleinschreibung.

Run-Konfiguration für Desktop-Modul sollte wie folgt sein:

enter image description here

+0

Ich versuche Ihren Code, und ich habe den gleichen Fehler –

+0

können Sie Ihre Vermögenswerte Ordner zusammen mit Ihren Ressourcen durch Screenshot zeigen. – Aryan

+0

https://ibb.co/nfLeTQ –

Verwandte Themen