React Native生成APK失败:D:\native已存在触发EEXIST错误
解决React Native执行
gradlew bundleRelease时的EEXIST路径冲突问题 嘿,我之前打包React Native发布版本时也碰到过类似的坑,给你几个亲测有效的解决思路:
1. 先解决最直接的文件冲突
错误提示里明确说EEXIST: file already exists, mkdir 'D:\native',说明你的D盘根目录已经有一个名为native的文件(不是目录),而打包进程试图在这个位置创建同名目录,自然就冲突了。
- 打开D盘根目录,找到这个
native文件,要么直接删除,要么重命名成其他名字(比如native_backup),然后重新运行gradlew bundleRelease试试。
2. 检查打包路径配置是否出错
有时候项目的gradle配置或者React Native的打包配置被误修改,导致输出路径指向了D盘根目录的native:
- 打开项目的
android/app/build.gradle文件,搜索bundleRelease相关的配置项,确认输出路径是项目内部的合理目录(比如默认的../app/build/outputs/bundle/release),而不是D:\native。 - 同时检查项目根目录的
react-native.config.js,看看有没有自定义的输出路径配置,确保路径设置正确。
3. 清理缓存重置打包环境
缓存错乱也可能导致这种奇怪的路径问题,试试彻底清理后重新打包:
- 先执行
gradlew clean清理gradle的本地缓存; - 删除项目根目录的
node_modules文件夹和package-lock.json(或yarn.lock)文件; - 重新执行
npm install(或yarn install)安装依赖; - 最后再运行
gradlew bundleRelease。
4. 强制指定打包输出路径
如果上面的方法都没解决,可以直接在命令里指定输出路径,绕开自动生成的错误路径:
gradlew bundleRelease --bundleOutput ./app/build/outputs/bundle/release/app-release.aab
这样打包产物会直接输出到项目内部的标准release打包目录,避免去创建D盘的native目录。
内容的提问来源于stack exchange,提问作者Usama Baloch
相关产品推荐
相关产品推荐

