Android以aar形式集成Flutter module

本文详细介绍如何将Flutter模块以aar包的形式集成到Android项目中,包括创建Flutter模块、打包aar、引入aar到Android项目及调用Flutter页面的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

Flutter 是谷歌开发的跨平台移动应用开发框架,它能够将 Dart 代码编译为本地平台的 ARM 代码,在 iOS 和 Android 平台上运行。Flutter 支持与原生代码混合使用,这使得开发人员可以使用 Flutter 开发 UI,同时使用原生代码处理一些高级功能。 如果你想将 Flutter 作为一个 aar 嵌入到 Android 项目中,可以按照以下步骤: 1. 在 Flutter 项目中创建插件 Flutter 插件是一种将 Flutter 功能转换为原生代码的机制。插件包含了一个 Dart API 和一个原生 API,它们之间通过平台通道进行通信。要将 Flutter 项目作为 aar 嵌入到 Android 项目中,你需要将 Flutter 插件创建为一个 aar 。 你可以通过运行以下命令创建一个 Flutter 插件: ``` flutter create --template=plugin my_flutter_plugin ``` 这将创建一个名为 my_flutter_plugin 的插件,并在其中包含一个 Flutter 模块和一个 Android 模块。 2. 将 Flutter 插件打包为 aar 要将 Flutter 插件打包为 aar ,你需要对 Android 模块进行一些修改。首先,将 Android 模块中的 build.gradle 文件中的 apply plugin 行更改为: ``` apply plugin: 'com.android.library' ``` 然后,将以下内容添加到 build.gradle 文件的末尾: ``` android { ... sourceSets { main.java.srcDirs += "${flutterRoot}/packages/flutter_module/src/main/java" } } task copyFlutterFramework(type: Copy) { from new File(project(':flutter').projectDir, 'build/app/outputs/flutter-apk/app-release-unsigned.apk') into('libs') { rename { 'app-release-unsigned.apk' } } } preBuild.dependsOn(copyFlutterFramework) ``` 这将允许你将 Flutter 模块中的 Dart 代码编译为本地平台的代码,并将其打包到 aar 文件中。 最后,在 Android 模块的 build.gradle 文件中添加以下依赖项: ``` dependencies { implementation 'com.google.android.material:material:1.0.0' implementation project(':flutter') } ``` 3. 将 aar 添加到 Android 项目中 要将 aar 添加到 Android 项目中,你需要将 aar 文件复制到 Android 项目的 libs 目录中,并将以下内容添加到 Android 项目的 build.gradle 文件中: ``` repositories { flatDir { dirs 'libs' } } dependencies { implementation(name:'my_flutter_plugin', ext:'aar') } ``` 这将允许 Android 项目在构建时引用 aar 。 这些步骤将允许你将 Flutter 作为一个 aar 嵌入到 Android 项目中。当你构建 Android 项目时,Flutter 将作为一个原生被包含在内,可以通过平台通道与 Dart 代码进行通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值