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

如何编译Flutter Engine的android-arm64-release/linux-arm64/gen_snapshot?

编译Flutter Engine的android-arm64-release/linux-arm64/gen_snapshot解决Termux Proot Ubuntu构建问题

前置依赖安装

  • 在Proot Ubuntu环境中安装编译必需工具:
    sudo apt update && sudo apt install git curl clang ninja-build pkg-config libssl-dev python3
    
  • 克隆depot_tools并配置环境变量:
    git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
    export PATH=$PATH:$PWD/depot_tools
    

拉取匹配版本的Flutter Engine源码

  • 先执行flutter doctor -v,查看本地Flutter SDK对应的Engine commit哈希值
  • 克隆Engine仓库并切换到对应commit:
    git clone https://github.com/flutter/engine.git
    cd engine
    git checkout <你的Flutter版本对应的Engine commit>
    gclient sync
    

生成Android ARM64 Release的构建配置

  • 运行gn命令生成构建目录:
    gn gen out/android_arm64_release --args='target_os="android" target_cpu="arm64" is_debug=false is_official_build=true flutter_runtime_mode="release"'
    
  • 若需要编译android-arm-release版本,将上述命令中的target_cpu="arm64"改为target_cpu="arm"即可

编译gen_snapshot

  • 执行ninja编译指定目标:
    ninja -C out/android_arm64_release gen_snapshot
    
  • 编译完成后,产物路径为out/android_arm64_release/gen_snapshot

替换到Flutter SDK对应路径

  • 找到Flutter SDK中缺失文件的路径,示例路径:
    flutter/bin/cache/artifacts/engine/android-arm64-release/linux-arm64/
  • 复制编译好的gen_snapshot到该路径:
    cp out/android_arm64_release/gen_snapshot /path/to/your/flutter/bin/cache/artifacts/engine/android-arm64-release/linux-arm64/
    
  • 同理处理android-arm-release的路径,使用编译arm版本得到的gen_snapshot替换

关键注意点

  • 版本匹配是核心:Engine的commit必须和本地Flutter SDK版本完全对应,否则替换后可能出现运行错误
  • Termux Proot环境资源有限,编译过程耗时较长,尽量保留足够后台资源
  • 若编译时出现依赖报错,直接按提示安装对应包即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 21:45:21