1

更新:已解决!阅读我自己接受的答案!

原帖:

我正在尝试在我的 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 没有任何内容。鉴于我的设备是那种类型,我认为它正在寻找它并且什么也没找到。等等,这给了我一个想法……

4

1 回答 1

2

所以因为 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 文件夹,但是一旦找到它,它就会在那里搜索,而不是其他任何地方。

感谢肖让我走上了正确的道路。

于 2017-10-19T23:51:48.810 回答