Android以aar形式集成Flutter module

由于公司项目是内网开发,故本文的集成形式是以本地打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页面

参考官网即可

https://flutter.dev/docs/development/add-to-app/android/add-flutter-screen?tab=transparent-activity-launch-kotlin-tab

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值