Я получаю эту ошибку: 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
Далее я:
jni
.ndk-build
..so
файлы из папки \libs
и поместил их в соответствующие папки в Unity (т.е. Hydrogen\Plugins\Android\arm64-v8a
). Вот оболочка С#, которую я использую. Вызов Hydrogen.Library.Initialize();
затем дает мне эту ошибку. Вот полный logcat, связанный с этой ошибкой.
И в случае, если мой процесс сборки удается правильно, и .so
файлы в порядке; что еще может вызвать это?
Редактировать: я пытаюсь собрать для armeabi-v7a
и 'x86. Вот подробности .so файла, может там что-то не так? Я не знаком с c, и, поскольку я не слышал о том, чтобы кто-нибудь собирал эту библиотеку для android, я задаюсь вопросом: может ли быть что-нибудь в исходном файле c, которое несовместимо с процессом сборки NDK?
Собственные библиотеки загружаются собственным компоновщиком системы, в вашем случае динамическим компоновщиком linux: ld.so
(иногда он меняет имена, поэтому я использовал это имя, так как вы можете проверить страницу руководства в документации с этим именем),
Для этого, как правило, вам нужно предоставить LD_LIBRARY_PATH
окружения LD_LIBRARY_PATH
для виртуальной машины Java, чтобы она могла эффективно dlopen(3)
.
Подумайте, насколько ваша система разработки может отличаться от вашей целевой... и вы легко доберетесь до этого.