Windows环境下Expo Android构建失败:expo-modules-core中ninja子命令执行失败
嗨,我之前在Windows 11上跑Expo 52的Android构建时也踩过几乎一模一样的坑,结合自己和社区里的排查经验,给你几个实用的解决方向:
检查CMake与Ninja版本兼容性
Expo 52对Android构建工具的版本有比较严格的适配要求,你当前用的CMake 3.22.1可能和expo-modules-core的依赖不匹配。建议你试试切换到CMake 3.20.2或者3.24.0版本——这两个版本在Windows环境下和Expo 52的适配性经过很多开发者验证过。
操作起来也简单:打开Android Studio的SDK Manager,切换到「SDK Tools」标签,勾选「Show Package Details」,找到CMake选项,选中目标版本安装后,删除项目根目录下的.android/build文件夹再重新构建。解决Windows路径过长问题
Windows默认的文件路径长度限制很容易被触发,你看你的项目路径加上node_modules里的嵌套结构,很可能已经超过了最大长度,导致Ninja无法正确访问构建所需的文件。
两种解决思路:要么把项目移到更短的路径下(比如C:\Proj\MyApp);要么开启Windows长路径支持:按Win+R输入regedit,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,把LongPathsEnabled的数值改成1(没有的话就新建一个DWORD(32位)值),重启电脑后再试构建。彻底清理缓存后重新构建
缓存文件损坏是这类莫名构建失败的常见原因,你可以依次执行以下命令清空所有相关缓存:npx expo prebuild --clean cd android && gradlew clean回到项目根目录后再重新运行
npx expo run:android。排查Windows Defender的拦截
Windows Defender的实时保护有时候会误判Ninja进程或者构建临时文件,导致构建被中途拦截。你可以临时关闭实时保护试试,或者把项目目录和Android SDK目录添加到Defender的排除项列表里,再重新执行构建命令。
备注:内容来源于stack exchange,提问作者Smeagol

