http://blog.youkuaiyun.com/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文件夹后重新编译即可。