解决在用ndk编译c++文件后libs/armeabi下的第三方so文件被删的问题

本文介绍了一种在使用NDK编译项目时,如何避免清理libs/armeabi目录从而导致第三方SO文件无法打包进APK的问题。通过在jni目录下新建文件夹及Android.mk文件,并进行特定配置,可以实现在编译过程中将第三方SO文件正确加入。
起因是这样的,当项目中需要用到第三方的so动态库时,就需要把第三方的so文件复制到libs/armeabi目录下,但是当需要用ndk编译出自己的so文件时会吧libs/armeabi目录下的文件清空,这样,第三方so文件就无法打包进apk。
解决方案是这样的:
先在jni目录下新建个文件夹如sms(名字可以自己取),然后把第三方so文件复制到此文件夹下,接着再新建一个Android.mk文件。


在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值