未在Libgdx Android上加载字体文件

未在Libgdx Android上加载字体文件,android,libgdx,Android,Libgdx,我正在使用以下代码在libgdx项目中加载字体 BitmapFont(Gdx.files.local("fonts/test.fnt")) 当我使用桌面启动器启动时,它工作正常 然而,当我使用Android Launcher启动时,我得到了以下错误 com.badlogic.gdx.utils.GdxRuntimeException: File not found: fonts/test.fnt (Local) 我不确定我在这里做错了什么。My Android project的assets

我正在使用以下代码在libgdx项目中加载字体

BitmapFont(Gdx.files.local("fonts/test.fnt"))
当我使用桌面启动器启动时,它工作正常

然而,当我使用Android Launcher启动时,我得到了以下错误

com.badlogic.gdx.utils.GdxRuntimeException: File not found: fonts/test.fnt (Local)

我不确定我在这里做错了什么。My Android project的assets for folder包含fonts文件夹,并包含test.fnt和test.png文件。

您是否为桌面和Android使用不同的assets文件夹,以便分别复制文件?或者您是否对桌面和android使用相同的资产文件夹


如果您使用的是相同的资产文件夹,那么桌面和android都必须使用android资产文件夹。安卓在这方面很挑剔。因此,您必须将桌面资源文件夹设置为指向android资源文件夹,然后无论何时添加新资源,都必须将其添加到android文件夹。

在android上,只能使用内部文件系统访问资源:

Gdx.files.internal("filename");

这就是我初始化字体的方式

fontTexture = new Texture(Gdx.files.internal("assets/texture/font.tga"));
buttonFont = new BitmapFont(Gdx.files.internal("assets/texture/font.fnt"), new TextureRegion(fontTexture), true);
通过使用internal,它会在您的项目中搜索包含资产的文件夹,该文件夹为“资产”,我的项目如下所示:

即使我清楚地将我的资产打包到我的项目中,当我像这样导出我的应用程序时,我也会得到同样的错误


现在我们来看看如何解决这个问题。您需要使用7z或Winrar之类的工具打开导出的项目,然后手动放入“资产”文件夹。在你的例子中是“字体”。这应该可以解决问题,至少我必须一直这么做,它从不为我打包资产。

我使用的是本地而不是内部。就像我说的,这就是我加载字体的方式。我建议在应用程序中打包字体。它可以无缝地工作