android jni 引用第三方 so

来源:互联网 发布:土豆网视频下载 mac 编辑:程序博客网 时间:2024/06/03 19:14

http://blog.csdn.net/hanwest/article/details/30044855

在android jni编程时,编译时默认会先清空libs/armeabi目录,所以不能直接把第三方动态库放在armeabi目录中。

要解决这个问题只需在jni目录新建一个prebuilt目录并把需要引用的so放入其中,然后在libs/android.mk中做如下修改(以百度地图api的so为例):


include $(CLEAR_VARS)
LOCAL_SRC_FILES := prebuilt/liblocSDK4b.so
LOCAL_MODULE    := locSDK4b
include $(PREBUILT_SHARED_LIBRARY)


include $(CLEAR_VARS)
LOCAL_SRC_FILES := prebuilt/libBaiduMapSDK_v2_4_0.so
LOCAL_MODULE    := BaiduMapSDK_v2_4_0
include $(PREBUILT_SHARED_LIBRARY)


即可编译成功。


其间如遇到编译后libs目录中的so文件只有2k或者大大小于原先的so文件,则清空obj文件夹后重新编译即可。


0 0