起因是这样的,当项目中需要用到第三方的so动态库时,就需要把第三方的so文件复制到libs/armeabi目录下,但是当需要用ndk编译出自己的so文件时会吧libs/armeabi目录下的文件清空,这样,第三方so文件就无法打包进apk。
解决方案是这样的:
先在jni目录下新建个文件夹如sms(名字可以自己取),然后把第三方so文件复制到此文件夹下,接着再新建一个Android.mk文件。
![](http://bbs.sevenpad.com/attachment/Mon_1309/13_28_8fb634ff102350a.png?4)
在Android.mk文件中这样写:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := smsiap (名字根据需要加入的文件写)
LOCAL_SRC_FILES := libsmsiap.so (此处也一样)
include $(PREBUILT_SHARED_LIBRARY)
然后修改jni目录下的Android.mk文件:
加入 include $(LOCAL_PATH)/sms/Android.mk
解决方案是这样的:
先在jni目录下新建个文件夹如sms(名字可以自己取),然后把第三方so文件复制到此文件夹下,接着再新建一个Android.mk文件。
![](http://bbs.sevenpad.com/attachment/Mon_1309/13_28_8fb634ff102350a.png?4)
在Android.mk文件中这样写:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := smsiap (名字根据需要加入的文件写)
LOCAL_SRC_FILES := libsmsiap.so (此处也一样)
include $(PREBUILT_SHARED_LIBRARY)
然后修改jni目录下的Android.mk文件:
加入 include $(LOCAL_PATH)/sms/Android.mk
ok!这样用ndk编译的时候就会把第三方so文件加到libs/armeabi下;
原文地址为
http://bbs.sevenpad.com/read.php?tid=210