更新:已解决!阅读我接受的自己的答案!
原始邮件:
我正在尝试在我的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,在apk上使用ObjectBox,我有4个文件夹
arm64-v8a
armeabi
armeabi-v7a
x86
在没有ObjectBox的apk上(有效)我有
armeabi
armeabi-v7a
x86
在arm64-v8a文件夹中,libgdx没有任何内容。看到我的设备就是那种类型,我认为它正在寻找并找不到任何东西。等等,这给了我一个想法...
答案 0 :(得分: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文件后,一切正常。
我的手机(三星S8)使用arm64-v8a,所以它使用该文件夹(如果存在)。我只能假设文件夹丢失时默认为diff文件夹,但一旦找到它,就会搜索到其他地方。
感谢肖让我走上了正确的道路。