我是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函数可参考官网

https://dart.cn/guides/libraries/c-interop

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐