Flutter升级后出现Execution failed for task ':app:externalNativeBuildDebug'异常
问题原因
本次构建失败的核心诱因是NDK版本与CMake版本不兼容:Flutter版本升级后默认适配的NDK版本提升至r23及以上,而你当前项目使用的CMake版本为3.6.4,属于过旧版本,对高版本NDK的编译参数转义处理存在缺陷,生成的构建指令中的括号没有被正确转义,执行时触发了shell语法错误。
修复方案
- 方案1:升级CMake版本到3.18.1及以上
打开项目android目录下的build.gradle文件,修改CMake版本配置:
android { externalNativeBuild { cmake { // 修改为3.18.1或更高可用版本 version "3.18.1" } } }
修改完成后同步Gradle,清理构建缓存后重新运行项目即可。
- 方案2:降级NDK到r22及以下版本
如果不希望改动CMake配置,可以指定项目使用旧版NDK。打开android/local.properties文件,添加如下配置:
# 路径替换为你本地实际存放对应版本NDK的路径 ndk.dir=/home/murali/Android/Sdk/ndk/22.1.7171670
注意需要提前在Android SDK Manager中下载r22及以下版本的NDK。
- 临时验证方案:清理旧构建缓存
执行如下命令清理所有残留的旧构建缓存后重新构建,部分场景下可直接解决问题:
flutter clean rm -rf android/app/.cxx
内容的提问来源于stack exchange,提问作者MURALI KRISHNAN MT
相关产品推荐
相关产品推荐

