You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用npx expo run:android构建Android失败,但gradlew构建成功

Expo run:android构建失败但手动执行gradlew成功的排查方案

问题概述

加入现有协作项目后,执行npx expo run:android始终无法完成构建,核心报错:

Error: C:\Users\user\OneDrive\Desktop\react-app\android\gradlew.bat exited with non-zero code: 1

但直接进入android目录执行gradlew --stacktrace可成功构建,同事能正常编译,排除代码层面问题。

已尝试的无效操作:

  • 删除android、node_modules、.expo文件夹
  • 清理npm/yarn缓存
  • 彻底卸载并重装所有开发工具(IDE、SDK、Node、Java、Android Studio等),与同事版本完全一致

排查修复思路

1. 路径特殊字符/权限问题

项目路径包含OneDrive同步文件夹,可能存在权限限制或路径解析异常:

  • 将项目复制到本地非同步目录(如C:\Projects\react-app),重新执行npx expo run:android
  • 检查项目文件夹权限,确保当前用户拥有完全控制权限

2. Expo CLI与手动执行的Gradle参数差异

Expo run:android会自动传递特定参数给Gradle,可能与手动执行的命令存在差异:

  • 执行npx expo run:android --verbose,查看完整Gradle执行命令,对比手动执行的gradlew --stacktrace差异
  • 复制Expo生成的完整Gradle命令手动执行,定位具体参数引发的错误

3. Expo缓存/环境变量异常

  • 执行expo r -c清除项目缓存后重新构建
  • 核对系统环境变量ANDROID_HOME、JAVA_HOME,确保与同事完全一致(路径避免空格,必要时用引号包裹)
  • 尝试跳过构建缓存:npx expo run:android --no-build-cache

4. Gradle Daemon状态问题

手动执行成功可能依赖已启动的正常Daemon,而Expo调用时启动了新的异常Daemon:

  • 执行cd android && gradlew --stop停止所有Gradle Daemon,回到项目根目录重新执行npx expo run:android
  • 查看~/.gradle/daemon目录下的日志,定位Expo调用时Daemon的具体错误信息

5. Expo CLI版本/依赖冲突

  • 执行npx expo --version查看本地版本,与同事核对一致性
  • 尝试使用项目本地CLI执行:./node_modules/.bin/expo run:android
  • 核对package.json中expo、@expo/cli版本,确保与同事完全一致后重新安装依赖

内容的提问来源于stack exchange,提问作者Ari B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 12:10:04