• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

陈文管的博客

分享有价值的内容

  • Android
  • Affiliate
  • SEO
  • 前后端
  • 网站建设
  • 自动化
  • 开发资源
  • 关于

Android 项目集成 Flutter 模块

2023年8月8日发布 | 最近更新于 2023年9月12日

Android项目上要集成Flutter模块,这样IOS研发用Flutter开发的功能模块,可以直接移植应用在Android上,降低开发成本。由于Flutter官网文档已经很久没更新了,有些配置信息是过期的,记录下Flutter模块集成中碰到的坑。

官网文档地址:将Flutter集成到现有应用

一、Android Studio 版本问题

集成配置的时候已安装的Android Studio版本是 Android Studio Bumblebee,这个版本可以正常安装Flutter插件和Dart插件,也可以正常创建Flutter工程,但是不能创建Flutter Module,创建的路径是在File->New->New Flutter Project,而不是在File->New->New Module。

在Bumblebee上点击创建之后弹出异常提示弹窗“At least one platform must be selected”,但实际有选择平台,并且配置模块路径下没有任何文件生成。

接着版本换成了官网上的4.2.2,这个版本的Firebase Services插件有问题,无法卸载更换版本,原始工程都无法编译。最后的版本换成 Android Studio Flamingo | 2022.2.1 Patch 2 正常了。

Android Studio Flamingo 网盘下载链接: https://pan.baidu.com/s/1TLd-_1k4wgdwTJKNYzQEEw 提取码: weny

Android Studio 创建Flutter模块SDK路径配置

项目的命令要用下划线隔开,Project Type 选择Module,Language和Platforms选项可以在切换到Module前修改。

Android Studio 创建Flutter模块

资源地址:

Android Studio 历史版本下载文件归档

Android Studio 最新版本下载地址

Android Studio 版本说明

二、Flutter 模块集成配置

1、不需要引入JAVA 11版本

目前工程里面配置的是JAVA 8版本,并没有任何异常,如果没有用到JAVA 11中的特性,可以不升级到JAVA 11。

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

2、Flutter模块集成

将 Flutter 模块作为子项目添加到宿主应用的 settings.gradle 中的路径需要加上项目的根目录,如下图tangoapp-android是项目的根目录,evaluate中配置的路径参数就是:<项目目录名>/<Flutter模块目录名>/.android/include_flutter.groovy。

setBinding(new Binding([gradle: this]))
evaluate(new File(
        settingsDir.parentFile,
        'tangoapp-android/tango-flutter/.android/include_flutter.groovy'
))

左侧最顶部的TanGoApp模块是集成之后自动生成的,集成项目编译之后生成的APK路径变成了:

TanGoApp/app/build/intermediates/apk/tango

Android 集成 Flutter 模块配置

3、添加Flutter模块的依赖

在<Your Project>/app/build.gradle

dependencies {
  implementation project(':flutter')
}

在Android Studio换成Flamingo版本之后,项目依赖的compileSdkVersion、kotlin和gradle插件版本也需要对应升级,升级涉及到的代码接口需要修改的要对应调整下,这边碰到的就是Animator.AnimatorListener回调接口的参数变成非空的。

如果在触发版本编译之后出现找不到module_plugin_loader.gradle文件,选中pubspec.yaml文件,触发下Pub upgrade和Pub get生成需要的配置文件,这边需要开下科学上网工具。

Flutter模块集成pubsepc配置

Flutter项目集成之后,后续只需要同步lib文件夹下的Dart文件修改和配置文件的修改。测试集成之后编译版本,生成的APK文件比之前大了一倍。

三、Jenkins 编译配置

Jenkins Flutter模块集成编译配置

如果按照官方文档直接配置get、clean、和build编译步骤会出现各种问题,查了资料没法直接配置生成Android代码的compileSdkVersion、minSdkVersion、kotlin版本之类的参数,这些参数必须和集成项目的配置参数一致,最好是在本地编译生成.android目录之后,修改生成代码的compileSdkVersion、minSdkVersion、kotlin等参数让工程编译正常,再把.android目录下的文件上传到代码仓库。

Jenkins上的flutter的编译配置保留flutter pub get即可,执行这个命令的步骤放在Build Steps的最前面。

转载请注明出处:陈文管的博客 – Android 集成 Flutter 模块

扫码或搜索:文呓

博客公众号

微信公众号 扫一扫关注

文章目录

  • 一、Android Studio 版本问题
  • 二、Flutter 模块集成配置
    • 1、不需要引入JAVA 11版本
    • 2、Flutter模块集成
    • 3、添加Flutter模块的依赖
  • 三、Jenkins 编译配置
博客公众号

闽ICP备18001825号-1 · Copyright © 2025 · Powered by chenwenguan.com