React Native构建react-native-reanimated遇CMake路径过长错误求助
Windows下构建react-native-reanimated遇CMake路径过长问题的解决方案
针对你遇到的ninja: error: mkdir(...) No such file or directory路径过长报错,以下是几个切实可行的解决办法:
1. 启用Windows系统的长路径支持
Windows默认限制路径长度为260字符,开启长路径支持可从根本上解决问题:
- 组策略方式:打开「本地组策略编辑器」(运行
gpedit.msc),依次展开「计算机配置」>「管理模板」>「系统」>「文件系统」,找到「启用Win32长路径」并设置为「已启用」,重启电脑生效。 - 注册表方式:打开注册表编辑器(运行
regedit),定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,找到LongPathsEnabled项(无则新建DWORD(32位)值),将数值改为1,重启电脑生效。
2. 自定义CMake构建目录缩短路径
修改项目的android/build.gradle文件,给react-native-reanimated模块指定更短的CMake构建临时目录:
subprojects { if (name == 'react-native-reanimated') { afterEvaluate { tasks.withType(com.android.build.gradle.tasks.CmakeExternalNativeBuildTask) { // 将构建目录设置为项目根目录下的.tmp文件夹,大幅缩短路径 arguments.add("-DCMAKE_BUILD_DIR=${rootProject.projectDir}/.tmp/reanimated-build") } } } }
添加后执行./gradlew clean,再重新尝试构建。
3. 用符号链接缩短node_modules路径
将项目的node_modules移到磁盘根目录(比如C:\nm),然后在项目目录下创建符号链接指向它:
# 先删除原项目下的node_modules,再执行以下命令 mklink /D C:\StockItUp\node_modules C:\nm
依赖文件实际存储在短路径下,项目中的node_modules仅为链接,避免深层嵌套的长路径问题。
4. 降级react-native-reanimated版本
部分新版本的reanimated在Windows路径处理上可能存在兼容性问题,尝试降级到3.10.x或3.12.x这类稳定版本:
- 修改
package.json中react-native-reanimated的版本号,比如"react-native-reanimated": "3.10.1" - 删除
node_modules和package-lock.json(或yarn.lock) - 重新执行
npm install(或yarn install) - 执行
./gradlew clean后重新构建
内容的提问来源于stack exchange,提问作者Joris Ricard
相关产品推荐
相关产品推荐

