更新:已解决!阅读我自己接受的答案!
原帖:
我正在尝试在我的 Libgdx Android 项目中使用 ObjectBox。
但是,当我按照 Android 指南操作时,我的应用程序崩溃了
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load shared library 'gdx' for target: Linux, 32-bit
我看到有一个桌面 gradle 设置,你认为我应该使用它吗?由于 Libgdx 并不是真正的 Android 项目,它是 LWJGL 中的纯 Java,仅位于一个空的 Activity 中。
有人成功了吗?
(我知道这是一个利基市场,而且希望渺茫...)
编辑:
我做了更多挖掘并查看了 lib 文件夹下的 apk,在使用 ObjectBox 的 apk 上,我有 4 个文件夹
arm64-v8a
armeabi
armeabi-v7a
x86
在没有 ObjectBox 的 apk 上(有效)我有
armeabi
armeabi-v7a
x86
在 arm64-v8a 文件夹中没有 libgdx 的内容。鉴于我的设备是那种类型,我认为它正在寻找它但什么也没找到。等等,这给了我一个想法......
最佳答案
因为 ObjectBox 为 arm64-v8a 的附加现代文件夹创建了 .so 文件,而我的 libgdx 设置没有这些行
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
file("libs/arm64-v8a/").mkdirs();
if (jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
因为我的手机使用了那个文件夹(如果可以的话),它没有找到任何要使用的 gdx 文件。
将以上行添加到我的 gradle 文件后,一切正常。
我的手机 (Samsung S8) 使用 arm64-v8a,所以它会使用该文件夹(如果存在)。我只能假设该文件夹是否丢失,它默认为 diff 文件夹,但一旦找到它,它就会在那里搜索,而不会在其他任何地方搜索。
感谢 Xiao 让我走上了正确的道路。
关于android - 将 ObjectBox 与 Libgdx 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46840146/