Используйте ObjectBox с Libgdx
ОБНОВЛЕНИЕ: решено! ПРОЧИТАЙТЕ СВОЙ ОТВЕТ, ЧТО Я ПРИНЯЛ!
ОРИГИНАЛЬНАЯ ПОЧТА:
Я пытаюсь использовать ObjectBox в моем проекте Libgdx для Android.
Однако, когда я следую руководству по Android, мое приложение вылетает
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load shared library 'gdx' for target: Linux, 32-bit
Я вижу, что на рабочем столе есть настройка gradle, как вы думаете, я должен использовать это? Поскольку Libgdx на самом деле не проект Android, это чистый Java в LWJGL, который просто находится в пустом Activity.
Кто-нибудь получил это работает?
(Я знаю, что это ниша и длинный выстрел...)
РЕДАКТИРОВАТЬ:
Я сделал еще несколько копаний и посмотрел в apk в папке lib, на apk используя ObjectBox, у меня есть 4 папки
arm64-v8a
armeabi
armeabi-v7a
x86
На apk без ObjectBox (который работает) у меня есть
armeabi
armeabi-v7a
x86
В папке arm64-v8a нет ничего для libgdx. Поскольку мое устройство относится к этому типу, я предполагаю, что оно ищет его и ничего не находит. Держись, это дает мне идею...
1 ответ
Так как ObjectBox создает файлы.so для дополнительной современной папки arm64-v8a, а в моей настройке 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, но как только она находит ее, она ищет там и больше нигде.
Спасибо Сяо за то, что он поставил меня на правильный путь.