【问题标题】:Font file not loading on Libgdx Android字体文件未在 Libgdx Android 上加载
【发布时间】:2015-11-23 20:58:49
【问题描述】:

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

BitmapFont(Gdx.files.local("fonts/test.fnt"))

当我使用桌面启动器启动时,这工作正常。

但是,当我使用 Android Launcher 启动时,出现以下错误。

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

我不确定我在这里做错了什么。我的 Android 项目的文件夹资产包含字体文件夹,并具有文件 test.fnt 和 test.png。

【问题讨论】:

    标签: android libgdx


    【解决方案1】:

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

    Gdx.files.internal("filename");
    

    【讨论】:

      【解决方案2】:

      您是否为桌面和安卓使用不同的资产文件夹,以便拥有单独的文件副本?或者您是否为桌面和安卓使用相同的资产文件夹?

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

      【讨论】:

        【解决方案3】:

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

        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 之类的工具打开导出的项目,然后手动放入“assets”文件夹。在你的情况下,“字体”。这应该可以解决它,至少我总是必须这样做,它永远不会为我打包资产。

        【讨论】:

        • 我使用的是本地而不是内部。
        • 就像我说的,这就是我加载字体的方式。我建议在应用程序中打包字体。它可以无缝运行
        猜你喜欢
        • 2015-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-16
        • 2015-06-26
        • 1970-01-01
        相关资源
        最近更新 更多