Ошибка при использовании библиотеки, встроенной в NDK, которая зависит от другой в проекте Unity

Я хочу создать собственную программу C ++ и использовать ее на Android, и я научился делать это с помощью Android NDK. Я даже создал тестовый плагин (lib * .so), который работал отлично. Но когда я создал плагин, который зависит от первого (имеется в виду другая общая библиотека, созданная с помощью NDK), и использовал его в проекте Unity, он не работал. У меня есть эта ошибка:

    E/Unity   ( 4719): Unable to find MyLib
I/Unity   ( 4719): DllNotFoundException: MyLib
I/Unity   ( 4719):   at (wrapper managed-to-native) TestDLLScript:Foo ()
I/Unity   ( 4719):   at TestDLLScript.Start () [0x00000] in <filename unknown>:0
I/Unity   ( 4719):
I/Unity   ( 4719): (Filename:  Line: -1)
I/Unity   ( 4719):

Это проблема Unity или есть какая-то процедура, которой я должен следовать, чтобы эта работа работала?

Также вот мой файл создания плагина, хотя я не думаю, что проблема возникла из-за этого (так как он собран без каких-либо ошибок или предупреждений):

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := TestDLL
LOCAL_SRC_FILES := libs/$(TARGET_ARCH_ABI)/libTestDLL.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/source
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := MyLib
LOCAL_SRC_FILES += MyLibrary.cpp
LOCAL_SHARED_LIBRARIES += TestDLL
include $(BUILD_SHARED_LIBRARY)

0

Решение

Ваш lib*.so должен быть построен для всех ABI, а не только один. Посмотрите, для какого ABI вы создали свою библиотеку, и убедитесь, что ваше приложение создано для того же ABI.

Существует большой шанс, что у вас нет вашей библиотеки в конечном файле apk. Загляните внутрь apk.

0

Другие решения

Других решений пока нет …