当Flutter作为模块 (Flutter Module) 使用的时候,我们可以将Flutter Module 打包成aar的方式,依赖到Android原生项目中,这样原生项目无需进行任何的Flutter配置,耦合最小。
我们可以直接在本地进行依赖,或者使用maven仓库对aar包进行管理。
方法一 : 本地直接进行依赖
在项目根目录下,使用cmd中执行 flutter build aar命令
编译成功后,可以看到cmd中有显示相关的配置方式
需要注意的是,在Windows中,直接这样配置是会报错的,需要将本地maven url修改成如下所示
String storageUrl = System.env.FLUTTER_STORAGE_BASE_URL ?: "https://storage.googleapis.com"
maven {
url "file://C:/WorkSpace/Android/Flutter/flutter_module/build/host/outputs/repo"
}
maven {
url "$storageUrl/download.flutter.io"
}
但是,这种方式只适合个人开发的时候,对aar的管理不够友好,如果换一台电脑,或者多人开发,就会有问题了。
方法二 : 直接手动上传到maven仓库中
在项目根目录下,使用cmd中执行 flutter build aar命令
然后在build文件夹下找到该aar,手动上传到maven仓库中
详情可以看我的另一篇博客 手动上传aar到nexus maven仓库
这种比较简单,但经常上传的话,相对比较繁琐
方式三 : 使用脚本自动上传
点击upload.bat或在cmd中执行upload.bat ,自动上传aar到maven仓库

具体做法
- 在Flutter Module 项目的根目录下,新建一个
script文件夹 - 下载flutter_aar_upload.gradle放到
script文件夹下 - 在
script文件夹下新建upload.bat
接着,使用记事本编辑upload.bat
cd ..
cd .android
gradlew -I=../script/flutter_aar_upload.gradle -Pmaven-url=http://nexus.liubike.com/repository/AndroidRepository/ -Pmaven-user=admin -Pmaven-pwd=123456 -Pis-plugin=false -PbuildNumber=1.0.3 assembleAarRelease
还可以配置打包的cpu架构
-Ptarget-platform=android-arm,android-arm64,android-x64
然后就可以点击upload.bat或在cmd中执行upload.bat
然后,我们看一下maven仓库
可以看到,已经有这个aar了
最后,我们像使用其他普通的maven 第三方库一样,进行使用即可
- 在根目录的build.gradle中添加maven地址
repositories {
maven {
url 'http://nexus.liubike.com/repository/AndroidRepository/'
}
maven {
url 'https://storage.googleapis.com/download.flutter.io'
}
}
- 在app的build.gradle中添加依赖
dependencies {
implementation 'com.heiko.flutter_module:flutter_release:1.0.3'
}
编译,发现成功运行 !
如果是mac os 或 linux,可以看这一篇 https://blog.csdn.net/qq_37299249/article/details/115012889