在flutter项目中直接调用so库
我是flutter初学者,特此记录项目中直接调用so库下面这篇文章是在项中使用c或者c++,flutterrun的时候会把他编译为so库,进行调用https://blog.csdn.net/guawazi123321/article/details/105099443/但是更多情况,或者我遇到的情况是直接给了一个第三方的so库,项目中并没有c或c++文件,那怎么在flutter中直接调用so库呢?
·
我是flutter初学者,特此记录项目中直接调用so库
下面这篇文章是在项中使用 c或者c++,flutter run 的时候会把他编译为so库,进行调用
https://blog.csdn.net/guawazi123321/article/details/105099443/
但是更多情况,或者我遇到的情况是直接给了一个第三方的so库,项目中并没有c或c++文件,那怎么在flutter中直接调用so库呢?步骤如下:
1. 首先找到如下目录(项目下build-->app),具体目录如下:
D:\项目名\build\app\intermediates\merged_native_libs\debug\out\lib\x86
注意:这里是debug模式在模拟器可用,如果打包还需要复制到release目录下
D:\项目名\build\app\intermediates\merged_native_libs\release\out\lib\x86
2. 把需要的so库添加到对应的目录下,具体指(arm64-v8a,armeabi-v7a,x86,x86_64)
3.然后找到如下目录: 项目名\android\app\build.gradle
在文件中添加如下内容
buildTypes {
release {
signingConfig signingConfigs.release
ndk {
//这里其实我觉可以直接是用"armeabi-v7a",但国内几个大哥之前使用的都是"armeabi"
abiFilters "armeabi-v7a"
}
}
debug {
signingConfig signingConfigs.debug
ndk {
//这里要加上,否则debug包会出问题,后面两个为可选,x86建议加上不然部分模拟器回报错
abiFilters "armeabi","armeabi-v7a","arm64-v8a", "x86"
}
}
}
4. 然后在项目中新建一个dart文件,我这里是native_add.dart,加上函数签名
5. 接下来就可以在项目中使用
这里函数签名以及c函数转为dart函数可参考官网
更多推荐
已为社区贡献3条内容
所有评论(0)