Libgdx Freetype 字体生成器大纲行为怪异

Libgdx Freetype Font Generator Outline acting weird

我正在使用资产管理器通过对象生成我的字体 FreeTypeFontGeneratorLoader,特别是我正在使用这个当前参数

FreeTypeFontLoaderParameter parameter = new FreeTypeFontLoaderParameter();
parameter.fontFileName = "fonts/myFont.ttf";
parameter.fontParameters.size = size;
parameter.fontParameters.minFilter = Texture.TextureFilter.Linear;
parameter.fontParameters.magFilter = Texture.TextureFilter.Linear;
if(withStroke) {
    parameter.fontParameters.borderStraight = true;
    parameter.fontParameters.borderColor = Color.BLACK;
    parameter.fontParameters.borderWidth = 1.5f;
}
parameter.fontParameters.color = Assets.fontColor;

(然后我将我的字体加载到资产中的静态变量中class)

如果应用程序是第一次 运行,一切正常, 这是带有大纲屏幕截图的生成文本:

screenshot

但是在我使用这条线关闭我的应用程序后

Gdx.app.exit();

然后再次打开我的应用程序,轮廓现在开始变得奇怪了 这是奇怪的生成字体的屏幕截图:

screenshot

我已经尝试在 Gdx 中处理 ApplicationListener 事件时处理我的资产管理器,但有时我的字体仍然表现得很奇怪。

如果我在所有任务android中清除我的处理运行,那么字体又正常了。

你能告诉我为什么会发生这种情况的可能解决方案吗?你有什么建议吗? 谢谢

Android 有时会保留静态(最终)变量,即使应用程序失去了上下文。

使用静态变量时:确保在需要时释放,然后将它们设置为空。或者不要对资产使用静态。

之所以会出现这个问题,是因为我的应用程序没有完全关闭,因为这一行:

Gdx.app.exit();

正在这样做:

Schedule an exit from the application. On android, this will cause a call to pause() and dispose() some time in the future, it will not immediately finish your application"

这就是为什么我使用此行更改关闭我的应用程序的方式:

System.exit(0);

当用户再次打开我的应用程序时,我的应用程序正在加载并生成新字体。