我已将Assimp库构建为共享库.我把它包含在我的Android ndk项目中并且它构建正常但是当我加载它时我收到以下错误:无法加载本机库:My-Native-Activity.
(也许我应该补充一点,当我没有包含库并且我已经检查了apk并且在设备上时我的活动正常工作;库被添加到libs文件夹并安装在/ data/data/my中的设备上-app/lib中.)
我已经做了很多阅读,似乎解决这个问题的唯一方法是在启动我的本机活动之前使用System.loadLibrary加载它们.我想我更喜欢在采用这种方法之前使用dlopen动态加载它们.
我是否正确假设Android不会自动加载共享库我的原生活动(即我的共享库)取决于?
我会将它构建为一个静态库,但它超过54Mb不能工作.
这是我的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)
Run Code Online (Sandbox Code Playgroud)