Java LibGDX FreeTypeFontGenerator NoSuchField异常

Java LibGDX FreeTypeFontGenerator NoSuchField异常,java,libgdx,Java,Libgdx,现在,我正在用Java中的LibGDX构建一个小游戏,我想使用TTF字体。我已经在构建路径中添加了gdx-freetype.jar和gdx-freetype-natives.jar,但是当我开始运行我的应用程序时,我得到了一个“java.lang.NoSuchFieldError:id”错误。责任守则: FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("data/Prosto.ttf"

现在,我正在用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();
我在某个地方读到它可能与罐子的版本有关。我尝试再次运行安装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.<init>(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)
线程“LWJGL应用程序”com.badlogic.gdx.utils.GdxRuntimeException:java.lang.NoSuchFieldError:id中的异常 位于com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:116) 原因:java.lang.NoSuchFieldError:id 位于com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.generateData(FreeTypeFontGenerator.java:288) 位于com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.generateFont(FreeTypeFontGenerator.java:137) 位于com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.generateFont(FreeTypeFontGenerator.java:148) 在com.serialbit.personal.MainMenu.create上(MainMenu.java:44) 位于com.serialbit.personal.MainMenu(MainMenu.java:32) 在com.serialbit.personal.Tyredus.create(TyredusGame.java:8)上 位于com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:130) 位于com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:110)
使用这个,为我工作

FreeTypeFontGenerator gen = new FreeTypeFontGenerator(Gdx.files.internal("data/Prosto.tff"));
       font=gen.generateFont(12);
       font.getRegion().getTexture().setFilter(TextureFilter.Linear,TextureFilter.Linear);
这是一个关于LIBGDX字体的非常好的教程。我自己遵循它,没有错误


它涵盖了如何添加JAR以及今天面临的类似问题-您正在使用新版本的freetype extension,而没有更新libgdx

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

Glyph类位于libgdx的BitmapFont中。因此,在不更新libgdx的情况下,它会产生这个异常


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

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


您能显示错误的完整堆栈跟踪吗?您是否已将gdx freetype字体本机jar添加到构建路径中,以便在桌面上运行它…是的,我已将其添加到桌面构建路径中。它不起作用。我想,这个问题可能与Glyph类有关。也许这个库是一个旧版本…?@Xsander你看过教程了吗?