flutter项目使用ffi和原生交互问题积累

一、动态库和静态库调用不了的问题

1.flutter项目中运行iOS使用静态库.a问题

错误信息:Invalid argument(s): Failed to lookup symbol 'native_add':dlsym(RTLD_DEFAULT, native_add): symbolnot found

解决:

使用xcode打开Runner.xcworkspace,在linkBinaryWithLibraries里把xxx.a包含进来然后在AppDelegate.m里对静态库里面的任意函数如:native_add的调用

参考flutter 代码仓库_flutter使用C代码库—IOS篇_公子大白0m0-华为云开发者联盟

2.flutter项目中运行android使用动态库.so问题

错误信息:Invalid argument(s): Failed to load dynamic library 'libnative_lib.so': dlopen failed: library"libnative_lib.so" not found
解决:.so文件放的位置不对应该放的目录是:

项目名/build/app/intermediates/merged_native_libs/debug/out/lib/

build 目录可能在 Android Studio 内看不到,到文件夹下去操作就行,release 阶段也需要在对应目录放置库文件。是不是非常意想不到,毕竟这个目录一旦 clean 就没了,不过可以放在其他目录写个 gradle 脚本拷贝过去

可以正常调用的demo:https://gitlab.com/other1944413/flutter_lib_test.git

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值