5

Android 项目集成 Flutter 模块

 1 year ago
source link: https://www.chenwenguan.com/android-flutter-module-integration/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Android 项目集成 Flutter 模块

2023年8月8日 | 最近更新于 下午4:59

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。

左侧最顶部的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回调接口的参数变成非空的。

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

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

扫码或搜索:文呓

博客公众号

微信公众号 扫一扫关注


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK