小编myc*_*mes的帖子

从Android本机活动加载第三方共享库

我已将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)

android shared-libraries android-ndk

15
推荐指数
2
解决办法
2万
查看次数

标签 统计

android ×1

android-ndk ×1

shared-libraries ×1