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

已配置flavor的Flutter项目在Android原生运行时如何指定Flutter入口文件

Flutter 配置 flavor 后 Android 原生运行指定入口文件的方法

方法1:原生初始化 FlutterEngine 时绑定入口

  • 如果你通过自定义 FlutterEngine 启动 Flutter 页面,直接在执行 Dart 入口方法时指定对应入口文件路径即可,示例代码如下:
// Kotlin 实现
val flutterEngine = FlutterEngine(this)
flutterEngine.dartExecutor.executeDartEntrypoint(
    DartExecutor.DartEntrypoint(
        FlutterLoader.getInstance().findAppBundlePath(),
        "lib/main_dev.dart", // 替换为你的 flavor 对应入口文件路径
        "main" // 入口文件内的主函数名,默认是main,自定义函数名可同步修改
    )
)
// 缓存 engine 后续可直接调用
FlutterEngineCache.getInstance().put("common_engine", flutterEngine)
// Java 实现
FlutterEngine flutterEngine = new FlutterEngine(this);
flutterEngine.getDartExecutor().executeDartEntrypoint(
    new DartExecutor.DartEntrypoint(
        FlutterLoader.getInstance().findAppBundlePath(),
        "lib/main_prod.dart",
        "main"
    )
);
FlutterEngineCache.getInstance().put("common_engine", flutterEngine);
  • 如果要和 flavor 自动绑定,可在 Android 构建配置中给不同 flavor 预设入口路径,避免手动切换:
// app 模块 build.gradle 配置
android {
    flavorDimensions "env"
    productFlavors {
        dev {
            dimension "env"
            buildConfigField "String", "FLUTTER_ENTRY", "\"lib/main_dev.dart\""
        }
        prod {
            dimension "env"
            buildConfigField "String", "FLUTTER_ENTRY", "\"lib/main_prod.dart\""
        }
    }
}

配置后原生代码直接取 BuildConfig.FLUTTER_ENTRY 作为路径参数传入即可。

方法2:通过运行配置添加构建参数指定

如果是直接在 Android Studio 中选择对应 flavor 运行,可直接修改运行配置:

  • 打开顶部菜单栏 Run → Edit Configurations
  • 找到当前 Android 项目的运行配置,在 Build 分类下的 Additional arguments 栏添加参数:
    -Pdart-entrypoint=lib/main_dev.dart
    替换路径为对应 flavor 的入口文件路径后保存即可。

注意:所有自定义的 Flutter 入口函数必须添加 @pragma('vm:entry-point') 注解,否则 release 打包时会被 Dart 编译器树摇优化掉,导致运行崩溃。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:36:04