aar打包依赖 android_Flutter 混合开发中 aar 输出

本文详细介绍了在Android工程中进行Flutter混合开发时,如何通过aar依赖方式进行集成。这种方式便于内网打包,但调试Flutter较为复杂。首先,通过在Flutter工程下执行特定命令生成aar文件,然后将aar、flutter.jar和libflutter.so复制到指定目录,最后在Android主工程的build.gradle中添加依赖来完成集成。
摘要由CSDN通过智能技术生成

f0c81970bf028842e782fa9c42e89dbb.png

很多时候,我们都是在已有的 Android 工程,引入 Flutter Module 工程,从而进行混合开发的。而引入 Flutter 的方式一般有2种:

1,源码依赖

优点:方便调试,可支持热重载;

缺点:所有开发人员,都需要安装 Flutter SDK;

接入方式:(这里不做详细介绍

  • 创建一个 Flutter Module 工程,
  • Android 主工程里面 setting.gradle 中添加:
setBinding(new Binding([gradle: this]))                                 
evaluate(new File(                                                      
        settingsDir.parentFile,                                               
        'your_flutter_module/.android/include_flutter.groovy'                          
))
  • Android 主工程 app/build.gradle 中添加依赖:
implementation project(':flutter')

2,aar 依赖

优点:方便内网打包,其他开发人员不需要关注 Flutter 层;

缺点:开发调试 Flutter 麻烦,特别是涉及到通信 Channel;

接入方式:正常 aar 的方式引入 Android 工程就行了;

详细介绍:

特别注意以下都是基于 Flutter SDK 1.12.13+hotfix.8 版本实现;

1,在 Flutter 工程目录下,输入命令:

flutter build aar --no-debug --no-profile

2,生成的 aar maven 都在 your_flutter_module/build/host/outputs/repo 目录下;

3,用脚本复制所有 aar 到一个 flutter_libs 目录; 以下是 Mac/Linux 命令(包括打包,复制等全部命令):

# 修改成你的 Android 主工程 app 目录
hostAppDir=$WORK_DIR/app
# 修改成你的 Flutter Module 工程目录
WORK_FLUTTER_MODULE_DIR=$WORK_DIR/your_flutter_module
cd $WORK_FLUTTER_MODULE_DIR
flutter clean
flutter pub get
flutter pub upgrade
# 打包生成 aar
flutter build aar --no-debug --no-profile
# 找到所有 aar 文件
apkapk=$(find $WORK_FLUTTER_MODULE_DIR/build/host/outputs/repo -name '*.aar')
for i in $apkapk
do
  echo $i
  # 复制 aar 到 flutter_libs 目录
  cp -f -v $i $hostAppDir/flutter_libs/${i##*/}
done

以上生成的 aar 是包括 Flutter 插件的 aar 但是不包括 flutter.jar 和 libflutter.so

4,复制 flutter.jar 和 libflutter.so

在目录 /用户/.gradle/caches/modules-2/files-2.1/io.flutter 中可以找到对应 jar 和 so,手动复制一份到 flutter_libs 目录里面就好了;

5,Android 主工程 app/build.gradle 添加依赖:

implementation fileTree(dir: 'flutter_libs', include: ['*.aar'])
implementation fileTree(dir: 'flutter_libs', include: ['*.jar'])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值