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

Ubuntu环境下Flutter编译arm64-v8a时CMake任务执行失败求助

解决方案

1. 检查Android NDK配置与版本

  • 打开项目根目录下的 local.properties 文件,确认 ndk.dir 指向的路径正确,且NDK版本与同事一致(Flutter 3.10.6推荐使用NDK 25.x或兼容版本)。
  • 若路径错误或版本不匹配,修改后执行 flutter clean 再重新编译。

2. 调整CMake链接器标志

  • 找到项目中iris_method_channel模块的 CMakeLists.txt 文件(通常在 android/src/main/cpp/ 或对应模块目录下)。
  • 检查是否全局添加了 --fix-cortex-a53-843419 标志,改为仅针对arm64-v8a架构设置:
if(${ANDROID_ABI} STREQUAL "arm64-v8a")
    target_link_options(your_target_name PRIVATE -Wl,--fix-cortex-a53-843419)
endif()
  • 替换 your_target_name 为实际的目标名称,保存后重新编译。

3. 排查系统环境变量冲突

  • 检查是否设置了 CC、CXX 等系统环境变量,这些可能会覆盖Android NDK的编译器:
echo $CC
echo $CXX
  • 若输出指向系统gcc而非NDK的clang,临时取消这些变量后再编译:
unset CC
unset CXX
flutter run
  • 若问题解决,可将这些变量从 .bashrc 或 .zshrc 中移除,避免永久冲突。

4. 验证Gradle构建配置

  • 打开app模块的 build.gradle 文件,检查 android.defaultConfig.externalNativeBuild.cmake 部分是否有自定义的编译器或链接器参数。
  • 若存在可疑参数,尝试注释后重新编译,确认是否是该参数导致的问题。

5. 克隆全新项目副本

  • 由于本地项目可能存在未被 flutter clean 清除的损坏配置,从版本控制仓库克隆一份全新的项目,不保留任何本地修改,直接尝试编译。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 19:48:16