Загрузка сторонних общих библиотек из нативной активности Android

Я построил библиотеку Assimp как общую библиотеку. Я включил его в свой проект Android ndk, и он прекрасно работает, но при загрузке я получаю следующую ошибку: Невозможно загрузить собственную библиотеку: My-Native-Activity.

(Возможно, я должен добавить, что моя деятельность работает нормально, когда библиотека не включена и что я проверил apk и на устройстве; библиотека добавляется в папку libs и устанавливается на устройство в / data / data / my -app / Lib.)

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

Правильно ли я полагаю, что Android не будет автоматически загружать общие библиотеки, от которых зависит моя родная деятельность (т.е. моя общая библиотека)?

Я бы собрал его как статическую библиотеку, но он был больше 54 Мб, что не сработало.

Это мой Android.mk: я пытался добавить -lassimp в LOCAL_LDLIBS. Я не уверен, что это будет правильно, но это не имело никакого значения.

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE                        := assimp
LOCAL_SRC_FILES                     := libassimp.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE                        := native-activity
LOCAL_SRC_FILES                     := main.cpp 
LOCAL_LDLIBS                        := -llog -landroid -lEGL -lGLESv2 
LOCAL_STATIC_LIBRARIES              := android_native_app_glue
LOCAL_SHARED_LIBRARIES              := assimp
LOCAL_CPPFLAGS                      += -march=armv7-a -mfloat-abi=softfp
LOCAL_CFLAGS                := $(LOCAL_CPPFLAGS)
TARGET_ARCH_ABI                     := armeabi-v7a
LOCAL_C_INCLUDES            += $(LOCAL_PATH)
include $(BUILD_SHARED_LIBRARY)

$(call import-module,android/native_app_glue)

Ответы на вопрос(4)

Ваш ответ на вопрос