在已有Android工程中添加Flutter模块

一、环境配置:

Android studio:Android Studio Otter 2 Feature Drop | 2025.2.2

Flutter 3.38.3 • channel stable • https://mirrors.sjtug.sjtu.edu.cn/git/flutter-sdk.git

Framework • revision 19074d12f7 (3 weeks ago) • 2025-11-20 17:53:13 -0500

Engine • hash 8bf2090718fea3655f466049a757f823898f0ad1 (revision 13e658725d) (20 days ago) • 2025-11-20 20:19:23.000Z

Tools • Dart 3.10.1 • DevTools 2.51.1

二、添加步骤:

1.进入已有android工程的同级目录

2.创建flutter module

bash 复制代码
# 终端执行已下命令,flutter_module:flutter 模块名,可以自己命名
flutter create -t module flutter_module

3.在已有android工程的根目录中的Settings.gradle中添加如下代码

Kotlin 复制代码
...
rootProject.name = "FlutterHybirdDemo"
include(":app")

// FlutterHybirdDemo 为已有的android工程根目录
val filePath =
    settingsDir.parentFile.toString() + "/flutter_module/.android/include_flutter.groovy"
apply(from = File(filePath))

4.在app模块依赖新建的flutter模块,固定写法

Kotlin 复制代码
//注:不要写成flutter模块名,这里是固定写法
implementation(project(":flutter"))

5.在android/app/src/main/AndroidManifest.xml中添加如下代码

XML 复制代码
<activity
    android:name="io.flutter.embedding.android.FlutterActivity" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density"
    android:hardwareAccelerated="true"
    android:windowSoftInputMode="adjustResize" />

6.从原生页面打开Flutter页面

Kotlin 复制代码
vb.btnFlutter.setOnClickListener {
    startActivity(FlutterActivity.createDefaultIntent(this))
}

7.处理构建时错误

错误1:

修改已有android工程根目录中settings.gradle.kts中的代码

Kotlin 复制代码
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    //改为
    repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
    ...
}

错误2:

找不到一些代码包,在已有android工程根目录中settings.gradle.kts中的添加:

Kotlin 复制代码
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
    repositories {
        google()
        mavenCentral()
        //添加这个仓库
        maven { url = uri("https://storage.googleapis.com/download.flutter.io") }
    }
}

官方文档

FlutterAddNativeAppDemo

相关推荐
里欧跑得慢7 小时前
15. Web可访问性最佳实践:让每个用户都能平等访问
前端·css·flutter·web
Lanren的编程日记10 小时前
Flutter 鸿蒙应用数据版本管理实战:版本记录+版本回退+版本对比,实现全链路数据版本控制
flutter·华为·harmonyos
饭小猿人13 小时前
Android 腾讯X5WebView如何禁止系统自带剪切板和自定义剪切板视图
android·java
_李小白13 小时前
【android opencv学习笔记】Day 8: remap(像素位置重映射)
android·opencv·学习
美狐美颜SDK开放平台13 小时前
多场景美颜SDK解决方案:直播APP(iOS/安卓)开发接入详解
android·人工智能·ios·音视频·美颜sdk·第三方美颜sdk·短视频美颜sdk
嗷o嗷o14 小时前
Android BLE 里,MTU、分包和长数据发送到底该怎么处理
android
Gary Studio15 小时前
Android AIDL HAL工程结构示例
android
y = xⁿ16 小时前
MySQL八股知识合集
android·mysql·adb
MonkeyKing16 小时前
Flutter列表性能极致优化:从卡顿到丝滑
flutter·dart
IntMainJhy16 小时前
「Flutter三方库sqflite的鸿蒙化适配与实战指南:从入门到踩坑的本地数据库开发全记录」
数据库·flutter·华为·信息可视化·数据库开发·harmonyos