安卓添加第三方lib库

第一次接触到安卓中调用动态库的内容,花了很多时间。这边整理一下

第三方库是某公司提供的,包括.a文件、头文件、config、一份简单说明以及一份samplecode。我需要在安卓源代码中调用其中的函数进行处理 。

先是找安卓源代码中的位置,因为不熟悉,又花了点时间去熟悉结构。

然后是测试库是否成功包含进去,就是在源代码中调用一个简单函数测试一下。建文件夹,写Android.mk。因为最后使用的是动态库,所以要将静态库加入到最后的动态库中去。静态库copy到out目录下,很简单,一个prebuilt。但是这边我遇到问题,使用BUILD_MULTI_PREBUILT的时候,自动将静态库copy到了obj下,但是接下来引用的时候,报错:obj_arm中找不到静态库。一开始就怀疑是平台编译选项的问题,大概就是由于64位支持。但是无论我加LOCAL_MULTIBLIB:=32还是LOCAL_32_BIT_ONLY:= true都不管用,我以为无关64bit支持而是arm和x86的问题。结果找了一整天,都没有发现有什么。只是知道目标平台应该是TARGET_2ND_ARCH,而我现在生成的静态库目标是TARGET_ARCH。又不方便修改multi_prebuilt.mk。

最后还是请教了一下,安分的手动用BUILD_PREBUILT而不是BUILD_MULTI_PREBUILT,这样做很烦。说实话和我心中的理念是冲突的,作为一个程序员,要能懒则懒。但是————,算了吧,我还是先把任务完成再研究为毛 multi_prebuilt.mk跟我过不去吧。

这样,在要使用的地方的Android.mk中编译shared libraries的地方加入静态库的内容,就把静态库链接进去了。然后函数调用成功。 

转载于:https://www.cnblogs.com/bugtags/articles/4333015.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值