Используйте 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, но как только она находит ее, она ищет там и больше нигде.

Спасибо Сяо за то, что он поставил меня на правильный путь.

Другие вопросы по тегам