android ndk开发 如何实现一个so包含另一个so

我自己写了2个so,想把2个都打包放入其中1个so里面,mk文件里面应该如何写?... 我自己写了2个so,想把2个都打包放入其中1个so里面,mk文件里面应该如何写? 展开
 我来答
MartelV5
推荐于2016-07-06 · TA获得超过130个赞
知道答主
回答量:106
采纳率:0%
帮助的人:31.2万
展开全部
不推荐在jni库之外用so,因为这种情况下,需要在java代码里面依次加载相关的so。

如果一定要用的话android.mk里面的内容如下:
LOCAL_PATH:= $(call my-dir)
# first so, which will be built shared
include $(CLEAR_VARS)
LOCAL_MODULE := shared1
LOCAL_SRC_FILES := libnshared1.so
include $(PREBUILT_SHARED_LIBRARY)

# second so, which will be built shared
include $(CLEAR_VARS)
LOCAL_MODULE := shared2
LOCAL_SRC_FILES := libnshared2.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := yourjni
LOCAL_SRC_FILES := xxxx.cpp
LOCAL_SHARED_LIBRARIES := shared1
LOCAL_SHARED_LIBRARIES := shared2

LOCAL_LDLIBS := -llog

#LOCAL_LDFLAGS = $(LOCAL_PATH)/obj/libstdc++.a
#LOCAL_CPPFLAGS += -lstdc++

include $(BUILD_SHARED_LIBRARY)
更多追问追答
追问
我是要打包  不是共享。   不是LOCAL_SHARED_LIBRARIES
追答
你说的是打apk包,还是把so加入到so中?
如果是打apk包,需要把so拷贝到.\libs\armeabi目录下再打apk包,之前我试过用手动拷贝.so到该目录下,你可以试着做个脚本,然后在android.mk中调用完成同样功能。
如果你是说把so加入到so中,显然你需要考虑把你的so转换为.a,这样很方便。
fukeainideren
2014-08-26 · TA获得超过1934个赞
知道小有建树答主
回答量:461
采纳率:100%
帮助的人:165万
展开全部
我刚刚发布的一篇经验关于"android ndk 动态库":
http://jingyan.baidu.com/article/c910274bffa502cd361d2da0.html
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式