React Native安卓构建失败:无法删除指定路径求助
解决React Native run-android构建失败:无法删除指定路径的问题
我之前也帮不少开发者解决过类似的Windows下React Native构建时的文件锁定问题,给你几个亲测有效的方案,按顺序试试:
1. 先手动释放被占用的文件进程
这个错误90%的概率是因为某个进程锁定了C:\Users\John\Documents\React-projects\insta-clone3\mobile\android\app\build\generated\source\r\debug\com\aurelhubert里的文件,导致Gradle无法删除:
- 打开任务管理器,找到所有和
java.exe、node.exe、gradlew.bat相关的进程,全部结束掉(不用担心,这些进程重启构建会自动重新启动) - 或者打开资源监视器(任务管理器→性能→打开资源监视器),在“关联的句柄”里搜索这个路径的文件名,找到占用它的进程,直接结束
之后回到项目目录,重新运行react-native run-android,大概率能解决。
2. 彻底清理Gradle构建缓存和文件
如果进程释放没用,就手动清理构建产物:
- 进入项目的android目录:
cd android - 执行Gradle清理命令:
gradlew clean(Windows直接运行这个,Mac/Linux是./gradlew clean) - 还可以清理全局Gradle缓存,路径是
C:\Users\John\.gradle\caches,删除这个目录下的所有内容(放心,后续构建会重新生成缓存)
清理完再重新运行构建命令试试。
3. 调整Gradle配置,修复版本不匹配+减少文件锁定
看了你提供的build.gradle配置,发现compileSdkVersion 26和buildToolsVersion "25.0.1"版本不匹配,这也可能导致构建异常:
- 把
buildToolsVersion改成"26.0.2"(这是对应compileSdk26的稳定版本) - 另外在
android块里添加以下配置,减少增量编译带来的文件锁定问题:android { compileSdkVersion 26 buildToolsVersion "26.0.2" // 修改这里的版本 defaultConfig { // 你的现有配置... } // 新增以下配置 compileOptions { incremental false } packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' } }
4. 其他辅助方案
- 用管理员权限运行命令行:右键点击命令提示符/PowerShell,选择“以管理员身份运行”,再进入项目目录执行构建命令,避免权限不足导致的文件删除失败
- 缩短项目路径:把项目移到更短的路径下,比如
C:\ReactProjects\insta-clone3,Windows对长路径的支持有时候会出问题 - 排除项目目录到杀毒软件:如果Windows Defender或其他杀毒软件在扫描构建文件,会锁定文件。可以把项目根目录添加到杀毒软件的排除列表里,或者临时关闭实时保护测试一下
先从前面两个方案开始试,这两个解决了大部分类似问题。
内容的提问来源于stack exchange,提问作者Learn on hard way
相关产品推荐
相关产品推荐

