NDK开发c代码的so包,java加载的问题

需要给android端提供so包,且so包是纯c写的。

但是Android那边拿到so包后,运行一直报错,dlopen error:cannot locate symbol xxx(so包里的函数名).

android端一直怀疑是我的so包的问题,为此他专门用NDK写了个cpp的so包,调用成功。锅甩到了我头上。

我开始研究他的这个app的Java代码。

有一行,System.loadLibrary("xxx").

为此,我试了好几天,明悉了脉络。

发现:

他的NDK的so包(比如libmynativeso.so),调用了c++的so包(比如libadd.so),只需要写:

System.loadLibrary("mynativeso");一行就够了;

而调用纯c的so包(比如liblog.so),需要写两行:

System.loadLibrary("log");

System.loadLirary("mynativeso");

这样才不会报错。

好,这个问题记录一下,以供参考。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值