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

使用Expo构建React Native应用时Run Gradlew阶段报错求助

Expo构建React Native应用Gradle阶段启动失败问题

错误日志

w: 检测到多个Kotlin守护进程会话,路径为build/kotlin/sessions
本次构建使用了已废弃的Gradle特性,导致无法兼容Gradle 8.0。
可使用'--warning-mode all'参数查看具体废弃警告,判断警告来自自定义脚本还是插件。
本次构建中为确保正确性,已禁用7个无效工作单元的执行优化。
请参考废弃警告了解详细信息。
536个可执行任务:全部执行完成
[stderr] FAILURE: 构建完成但出现2个失败。
[stderr] 1: 任务执行失败。
[stderr] -----------
[stderr] * 问题原因:
[stderr] 任务':app:collectReleaseDependencies'执行失败。
[stderr] > java.io.FileNotFoundException: / (是一个目录)
[stderr] * 尝试方案:
[stderr] > 使用--stacktrace参数获取堆栈跟踪信息。
[stderr] > 使用--info或--debug参数获取更多日志输出。
[stderr] > 使用--scan参数获取完整构建洞察。
[stderr] ==============================================================================
[stderr] 2: 任务执行失败。
[stderr] -----------
[stderr] * 问题原因:
[stderr] java.lang.StackOverflowError (无错误信息)
[stderr] * 尝试方案:
[stderr] > 使用--stacktrace参数获取堆栈跟踪信息。
[stderr] > 使用--info或--debug参数获取更多日志输出。
[stderr] > 使用--scan参数获取完整构建洞察。
[stderr] ==============================================================================
[stderr] * 查看官方文档获取更多帮助。
[stderr] 构建失败,耗时7分44秒

package.json配置

{"name": "app-name","version": "1.0.1","main": "index.js","scripts": {"start": "expo start --dev-client","android": "expo run:android","ios": "expo run:ios","web": "expo start --web"},"dependencies": {"@expo-google-fonts/spartan": "^0.2.2","@react-native-community/netinfo": "^9.3.5","@react-navigation/bottom-tabs": "^6.3.1","@react-navigation/native": "^6.0.10","@react-navigation/stack": "^6.2.1","@rneui/base": "^4.0.0-rc.4","@rneui/themed": "^4.0.0-rc.4","axios": "^0.27.2","expo": "~46.0.19","expo-document-picker": "~10.3.0","expo-file-system": "~14.1.0","expo-font": "~10.2.0","expo-navigation-bar": "~1.3.0","expo-splash-screen": "~0.16.2","expo-status-bar": "~1.4.0","expo-updates": "~0.14.7","firebase": "9.8.3","react": "18.0.0","react-dom": "18.0.0","react-native": "0.69.6","react-native-bouncy-checkbox": "^2.1.10","react-native-bouncy-checkbox-group": "^0.1.0","react-native-dotenv": "^3.3.1","react-native-dropdown-select-list": "^1.0.18","react-native-elements": "^3.4.2","react-native-gesture-handler": "~2.5.0","react-native-maps": "^1.3.2","react-native-modal": "^13.0.1","react-native-permissions": "^3.3.1","react-native-reanimated": "~2.9.1","react-native-safe-area-context": "4.3.1","react-native-screens": "^3.18.2","react-native-status-bar-height": "^2.6.0","react-native-svg": "12.3.0","react-native-svg-transformer": "^1.0.0","react-native-swiper": "^1.6.0","react-native-vector-icons": "^9.1.0","react-native-web": "~0.18.7","styled-components": "^5.3.5","xlsx": "^0.18.5"},"devDependencies": {"@babel/core": "^7.18.6","metro-react-native-babel-preset": "^0.70.3","react-test-renderer": "18.0.0"},"private": true}

eas.json配置

{"cli": {"version": ">= 3.6.0"},"build": {"development": {"distribution": "internal","android": {"gradleCommand": ":app:assembleDebug"},"ios": {"buildConfiguration": "Debug","resourceClass": "m1-medium"}},"preview": {"distribution": "internal","ios": {"resourceClass": "m1-medium"}},"production": {"ios": {"resourceClass": "m1-medium"}}},"submit": {"production": {}}}

app.json配置

{"expo": {"name": "App Name","slug": "appname","version": "1.0.1","icon": "./assets/images/icon.png","splash": {"image": "./assets/images/splash.png","resizeMode": "contain","backgroundColor": "#FF6B0F"},"android": {"adaptiveIcon": {"foregroundImage": "./assets/images/adaptive-icon.png","backgroundColor": "#fff"},"permissions": ["WRITE_EXTERNAL_STORAGE"],"package": "com.euquero.app"},"assetBundlePatterns": ["**/*"],"packagerOpts": {"config": "metro.config.js","sourceExts": ["js","svg"]},"description": "","extra": {"eas": {"projectId": "24bced36-2rfs-4d11-89e2-19013e1f178f"}}}}

已尝试的解决方案

  • 使用expo upgrade更新所有依赖
  • 通过React Native Upgrade Helper执行版本更新
  • 清理Gradle缓存:运行./gradlew clean
  • 更新build.gradle文件

推荐解决步骤

  1. 检查路径配置:错误提示java.io.FileNotFoundException: / (Is a directory),说明构建时试图将根目录当作文件读取。排查所有涉及文件路径的配置(如app.json资源路径、metro.config.js、gradle配置),确保路径指向具体文件而非目录。
  2. 排查依赖冲突:StackOverflowError通常与递归调用或依赖冲突相关。逐步移除非核心依赖(如xlsx、react-native-swiper等),重新构建定位问题依赖。
  3. 调整Gradle内存:在android/gradle.properties中添加或修改以下配置,增大Gradle堆内存:
    org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
    
  4. 重置构建环境:删除android/build、android/app/build目录,清除node_modules和package-lock.json/yarn.lock,重新安装依赖后再尝试构建。
  5. 指定Gradle版本:在android/gradle/wrapper/gradle-wrapper.properties中指定适配RN 0.69.x的稳定Gradle版本(如7.4),避免版本兼容问题。

内容的提问来源于stack exchange,提问作者Brayan Amaral

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:56:05