Android Jni引用第三方库

在jni下新建文件夹(jniLib)用来存放第三方so库:

将so拷贝到jniLib下,新建一个Android.mk文件:

LOCAL_PATH:= $(call my-dir)  
include $(CLEAR_VARS)  
LOCAL_MODULE    := libadd_putao_pre  
LOCAL_SRC_FILES :=  libadd_putao.so  
include $(PREBUILT_SHARED_LIBRARY)  

在你需要使用该动态库的Android.mk修改为类似如下:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_DISABLE_FORMAT_STRING_CHECKS := true
LOCAL_LDLIBS    := -lm -llog 
LOCAL_MODULE     := xxxx
LOCAL_SRC_FILES  := xxx.pp xx.c 
LOCAL_STATIC_LIBRARIES := libadd_putao
include $(BUILD_SHARED_LIBRARY)

在C/C++代码中添加如下:

void *handle = dlopen("libadd_putao.so", RTLD_LAZY);
  if (!handle) {
    __android_log_print(ANDROID_LOG_INFO,"------->", dlerror());
  return NULL;
}

decrypt = (返回)dlsym(handle, "xxx_method_name");
if (!decrypt) {
  __android_log_print(ANDROID_LOG_INFO,"------->", dlerror());
  return NULL;
}

如果你是C++,Application.mk添加如下:

APP_ABI := armeabi
APP_STL := gnustl_static
APP_PLATFORM := android-19

 

 

OK 编译吧,大功告成!

 

posted @ 2016-04-14 17:10  蓝色冰晶  阅读(1537)  评论(0编辑  收藏  举报