LibGDX FreeTypeFontGenerator NoSuchFieldexception

现在,我正在使用Java中的LibGDX构建一个小游戏,我想使用TTF字体。 我已将gdx-freetype.jar和gdx-freetype-natives.jar添加到我的构建路径中,但是当我运行我的应用程序时,出现“java.lang.NoSuchFieldError:id”错误。 负责的代码:

FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("data/Prosto.ttf")); BitmapFont font = generator.generateFont(12); generator.dispose(); 

我在某处看到它可能与JAR的版本有关。 我已经尝试再次运行设置UI,我尝试过其他版本的JAR,但无济于事。

编辑:这是完整的堆栈跟踪:

 Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: java.lang.NoSuchFieldError: id at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:116) Caused by: java.lang.NoSuchFieldError: id at com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.generateData(FreeTypeFontGenerator.java:288) at com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.generateFont(FreeTypeFontGenerator.java:137) at com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.generateFont(FreeTypeFontGenerator.java:148) at com.serialbit.personal.MainMenu.create(MainMenu.java:44) at com.serialbit.personal.MainMenu.(MainMenu.java:32) at com.serialbit.personal.Tyredus.create(TyredusGame.java:8) at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:130) at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:110) 

今天面临类似的问题 – 您正在使用新版本的freetype扩展而不更新libgdx!

提交libgdx的名称为“将多页字体添加到BitmapFont;更新FreeTypeFontGenerator …”,在FreeTypeFontGenerator中添加了Glyph.id字段的用法。

Glyph类位于libgdx的BitmapFont中。 所以不更新libgdx – 它会产生这个exception。

您还应该更新libgdx – 这将解决此问题。 或者使用旧版本的freetype扩展!

用这个,为我工作

 FreeTypeFontGenerator gen = new FreeTypeFontGenerator(Gdx.files.internal("data/Prosto.tff")); font=gen.generateFont(12); font.getRegion().getTexture().setFilter(TextureFilter.Linear,TextureFilter.Linear); 

这是一个非常好的LIBGDX字体教程。 我自己跟着它,没有错误

https://www.google.co.uk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CDcQtwIwAA&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D3JgjFZFQu74&ei= E-R_UrrKGcmrhQf1l4GYBQ&USG = AFQjCNFDDpCbZRhftx7aXKmdcturr9qpDw&SIG2 = bY_ZJZw-DIgdNObDaXg3EA&BVM = bv.56146854,d.ZG4

它涵盖了如何添加jar子和一切

问题是由于您没有使用FreeTypeFontParameter实例引起的。 因此,当它生成字体时,它没有一组属性可以分配给它。 AFAIK,这遵循惰性初始化的原则:

http://en.wikipedia.org/wiki/Lazy_initialization