Собственная библиотека не найдена в сборке Android?

1

Я получаю эту ошибку: unable to lookup library path for, native render plugin support disabled найти unable to lookup library path for, native render plugin support disabled при запуске приложения на Android. Я думаю, что я создаю общие библиотеки неправильно.

Я ищу для создания исходных файлов из этого репо. Я скажу, что мой процесс сборки, и, возможно, кто-то может определить шаг, который я пропускаю или делаю неправильно.

Следуя этому руководству, я придумал это:

Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE    := libhydrogen
LOCAL_SRC_FILES := ..\hydrogen.c

include $(BUILD_SHARED_LIBRARY)

Application.mk

APP_PLATFORM := android-16
APP_OPTIM := release
APP_MODULES := libhydrogen

Далее я:

  1. Поместил эти файлы в папку jni.
  2. Называется ndk-build.
  3. Скопировал .so файлы из папки \libs и поместил их в соответствующие папки в Unity (т.е. Hydrogen\Plugins\Android\arm64-v8a).
  4. Убедитесь, что их платформы и архитектуры процессоров были правильными.
  5. Построил мое приложение.

Вот оболочка С#, которую я использую. Вызов Hydrogen.Library.Initialize(); затем дает мне эту ошибку. Вот полный logcat, связанный с этой ошибкой.

И в случае, если мой процесс сборки удается правильно, и .so файлы в порядке; что еще может вызвать это?

Редактировать: я пытаюсь собрать для armeabi-v7a и 'x86. Вот подробности .so файла, может там что-то не так? Я не знаком с c, и, поскольку я не слышал о том, чтобы кто-нибудь собирал эту библиотеку для android, я задаюсь вопросом: может ли быть что-нибудь в исходном файле c, которое несовместимо с процессом сборки NDK?

Теги:
unity3d

1 ответ

0

Собственные библиотеки загружаются собственным компоновщиком системы, в вашем случае динамическим компоновщиком linux: ld.so (иногда он меняет имена, поэтому я использовал это имя, так как вы можете проверить страницу руководства в документации с этим именем),

Для этого, как правило, вам нужно предоставить LD_LIBRARY_PATH окружения LD_LIBRARY_PATH для виртуальной машины Java, чтобы она могла эффективно dlopen(3).

Подумайте, насколько ваша система разработки может отличаться от вашей целевой... и вы легко доберетесь до этого.

  • 0
    Привет, если я не пойму неправильно, я не думаю, что это является причиной моей проблемы, потому что у меня есть другие плагины, которые нормально импортируются на том же устройстве.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню