You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin Multiplatform应用中正确集成Flutter模块

Kotlin Multiplatform 安卓端源码方式集成Flutter模块落地步骤

你遇到的两个典型集成误区:一是无需将Kotlin DSL格式的settings.gradle.kts重命名为Groovy格式的settings.gradle,二是宿主项目名参数配置位置、格式错误导致不生效,按以下步骤配置即可跑通全量一步编译:

1. 配置settings.gradle.kts引入Flutter子项目

直接在KMP项目根目录原有的settings.gradle.kts末尾追加如下配置,无需修改文件后缀:

// 请将路径替换为你本地Flutter模块的实际相对路径
setBinding(Binding(mapOf("gradle" to this)))
evaluate(
    file(
        rootDir,
        "flutter_module/.android/include_flutter.groovy"
    )
)

如果你的Flutter模块存放在KMP项目同级目录,将路径替换为settingsDir.parentFile, "flutter_module/.android/include_flutter.groovy"即可。配置完成后同步Gradle,会自动引入:flutter、:flutter_embedding_debug等相关子项目。

2. 配置宿主应用模块名参数

之前配置不生效的核心原因有两点:

  • 参数放错位置:该配置需要写在**KMP宿主项目根目录的gradle.properties**中,而非Flutter模块内部的gradle.properties
  • 参数值格式错误:不需要给值加引号,也不需要加冒号前缀
    直接在根目录gradle.properties文件末尾追加一行:
org.gradle.project.flutter.hostAppProjectName=MusicTraining

3. 宿主应用模块添加Flutter依赖

找到你项目中MusicTraining应用模块的构建脚本(build.gradle.kts或build.gradle),在dependencies依赖块中添加Flutter模块依赖:

dependencies {
    // 保留原有所有依赖配置
    implementation(project(":flutter"))
}

4. 集成校验与常见问题处理

  • 首次同步前先进入Flutter模块目录执行flutter pub get,生成.android构建目录文件,避免Gradle同步时报找不到脚本的错误
  • 若同步后仍报找不到宿主项目的错误,检查MusicTraining模块是否正确应用了com.android.application插件,只有application类型的安卓模块会被识别为宿主App
  • 不要全局替换项目中的:app字段,Flutter的构建逻辑会自动读取配置的宿主项目名完成关联,全局替换会破坏Flutter模块内部的构建链路
  • 若出现Flutter编译版本和宿主安卓项目编译版本不匹配的问题,统一将两者的compileSdkVersion对齐到34及以上即可

内容的提问来源于stack exchange,提问作者Adrien

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 19:36:33