一、动态库和静态库调用不了的问题
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