前言
以aar形式将项目依赖到已有的android项目中
一、 确认flutter版本
确认远程flutter人员推项目时用的,不同版本会导致不同的编译问题,尽量使用同一flutter版本。
使用flutter doctor可以用flutter doctor或flutter --version查看flutter版本。
用flutter upgrade只能升到最新版,如果需要更改到指定版本,可以进入flutter代码的目录下,使用git checkout 到指定版本,再运行flutter doctor即可
二、 打出 aar
-
使用命令:flutter build
- 按照命令板提示,配置到主项目中,例如:
build.gradle中
maven {
url ' 你的打印出的目录/finka_flutter/build/host/outputs/repo'
}
maven {
url "https://storage.flutter-io.cn/download.flutter.io"
}
原生app依赖
//flutter
debugImplementation 'comxx:flutter_debug:1.0'
releaseImplementation 'comxx:flutter_release:1.0'
如果有其他buildTypes ,例如preRelease
preReleaseImplementation 'comxx:flutter_release:1.0'
不过我这边都依赖的release,方便一些。
- 如果以后flutter项目中用了一些三方,和原生冲突了,可以这样做
implementation ('com.example.finka_main:flutter_release:1.0'){
exclude group: 'com.google.android.exoplayer'
}
-
build中看download info的信息,是否正确找到地址下载
校验
在android任意一个类中输入FlutterActivity,监测是否能获取到。
后记
这里写了一个shell脚本,用于打包成aar并将aar复制到原生项目中
flutter build aar --no-debug --no-profile
if [ $? -eq 0 ]; then
echo "build success"
rm -rf /Users/xx/xx/app/flutter/repo
cp -rf /Users/xx/xx/xx/build/host/outputs/repo /Users/xx/xx/app/flutter
if [ $? -eq 0 ]; then
echo "copy suc"
else
echo "copy fail"
fi
else
echo "build fail"
fi
当然,最好是能将aar放入远程maven仓库中。
参考网址
https://flutter.cn/docs/add-to-app/android/project-setup
flutter与原生的交互网址借鉴
app只有一个入口打开一个flutter主页面
app多个入口打开flutter页面1
app多个入口打开flutter页面2