由于公司项目是内网开发,故本文的集成形式是以本地打aar包直接引入到现有的Android项目中,这种方式其他开发人员不需要搭建Flutter的环境也可以集成开发。
我的flutter版本是2.0.3👇
一、创建Flutter module
首先要在Android Studio中安装Flutter和Dart的plugin,接着我们选择 File -> New -> New Flutter Project -> Flutter Module
初始化创建的Module是一个可以点击加一的页面,我们以此为例(这个初始化的Demo无三方库的依赖,只有对Flutter本身的基础依赖)
二、打包aar
方法一:借助fat-aar https://juejin.cn/post/6955065180313108516
方法二:用google的方式
可以在Termial中运行命令 flutter build aar或者在Android Studio中选择 Build AAR
生成的文件在项目的build -> host -> repo目录下
注意:用这种方式打包出来的aar依赖是在pom文件中声明,别人在Android项目中引入aar还会去依赖的地址中下载资源库
三、在Android项目中引入AAR
1、在app的目录下新建libs文件夹 并在build.gradle中配置
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
......
api fileTree(dir: 'libs', includes: ['*.jar'])
implementation(name: 'flutter_debug', ext: 'aar')
......
}
2、拷贝刚才打包生成的 aar 和 flutter_embedding.jar 到libs目录下
flutter_embedding.jar在你本地的gradle下载依赖缓存中 路径为 .gradle/caches/modules-2/files-2.1/io.flutter/flutter_embedding_debug 因为aar是debug所以一定要拷贝debug版本
(release的aar对应release的jar 并且打包也是release包才行)
3、将上文中的Flutter Module再打包成apk,从生成的apk中拷贝出来对应架构的so库(在这里我三个文件夹我都拷贝了)
4、在app/src/main目录下创建jniLibs,把上面的x86、X86_64、arm64_v8a拷贝进来
在app的build.gradle中添加如下配置
defaultConfig {
......
ndk {
abiFilters "arm64-v8a", "x86", "x86_64"
}
}
四、跳转Flutter页面
参考官网即可