Libgdx无法加载Linux 32位目标平台下的共享库"gdx-freetype",如何修复?

5
我开始使用libgdx,并且一直尝试在Android上使用freetypefont,但是无论我怎样努力,它似乎都不能正常工作。在我尝试使用freetypefont之前,我的应用程序运行得非常完美。我已按照libgdx网站的指示放置了扩展文件。应用程序启动后很快就会崩溃或停止工作。
控制台显示无法为32位Linux目标加载共享库gdx-freetype。我感觉自己已经试过所有的方法了。我将两个freetype和freetype本地文件放入了主要游戏库中,也放入了桌面,只在Android lib中放置了freetype文件。我已经使用了armeabi文件夹的最新夜间构建.so文件,但仍然没有效果。我还根据推荐包括了x86文件夹的夜间构建.so文件,但仍然没有效果。如果有人对此有任何帮助,请帮帮我,谢谢。

对我来说,这个库好像是为64位编译的。你能检查一下吗? - Thrash Bean
抱歉,我无法确认这一点,似乎没有任何地方说明它是为什么编译的。我从这里获取了它们:http://libgdx.badlogicgames.com/nightlies/。 - user2002077
3个回答

7
您需要在您的build.gradle文件中为每个项目依赖项添加此处列出的内容

implementation "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64"

(说明:该段内容是指对于每个项目依赖,都需要在build.gradle文件中添加上述代码块中的所有内容。)

1
谢谢,它帮了我很大的忙 :) - AndroidBeginner
1
我之前已经点赞了一段时间,因为它真的很有帮助。我将实际列表放在你的答案中,以防源更改并且更方便。希望你不介意!如果你不喜欢,就回滚吧 :) - Willi Mentzel

2
我有一个使用相同库的游戏正在运行得很好。以下是这些工作的库的信息(使用“文件”):
libs/armeabi/libgdx-freetype.so:     ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, stripped
libs/armeabi-v7a/libgdx-freetype.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, stripped

请确保您已经安装了正确的库,这样就可以正常工作了。值得一提的是,我正在运行每晚构建版本(1.0-SNAPSHOT)。

您可能还想检查一下是否在ARM Android上运行,因为这些库是为此设计的。如果您正在运行x86 Android,则不确定是否支持freetype扩展功能。


谢谢,抱歉,你是怎么找到这些库的信息的?当我打开.so文件时,它显示了一堆随机字符。 - user2002077
我目前在Nexus 7上运行它,我认为它是ARM架构。但是如果我想让它在许多Android设备上运行,那么肯定不起作用。还有其他什么方法可以显示文本? - user2002077
是的,那是ARM架构,我的游戏在Nexus 7上使用相同的库也能正常运行。 - Marius Kjeldahl
我决定在libgdx中重新创建一个新项目,出于某种原因,这次字体的问题得到了解决,所以我不知道最初的问题是什么。无论如何,还是谢谢。 - user2002077
现在它不再工作了。我打算放弃它,因为它让我感到沮丧。 - user2002077

0
我遇到的问题是,由于某种原因,在Android项目的lib文件夹中的任何armeabi、armeabi-v7a或x86文件夹中都没有复制libgdx.so。
从libgdx分发中复制这些文件对我有用。
setup-ui程序只是为您从libgdx分发中复制文件。您可以在那里找到这些文件夹。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接