Expo托管工作流构建Android生产包遇‘无法读取/脚本’错误
Expo托管工作流Android生产构建失败:无法读取脚本'/'(目录)
问题详情
使用命令eas build --platform android --profile production构建面向Google Play Store的Android版本时失败,但本地内部Android构建可正常完成。
错误日志
执行‘gradlew :app:bundleRelease’于/home/expo/workingdir/build/android
下载gradle-7.5.1-all.zip
欢迎使用Gradle 7.5.1!此版本亮点:
- 支持Java 18
- 支持使用Groovy 4构建
- 响应性更强的持续构建
- 改进依赖解析诊断
更多详情请见...
为遵循本次构建的JVM设置,将启动单次使用的守护进程。构建结束后Gradle守护进程将停止。
构建失败,出现异常。
- 位置:
设置文件‘/home/expo/workingdir/build/android/settings.gradle’第6行- 错误原因:
评估设置‘ProjectName’时出现问题。无法读取脚本‘/’,因为它是一个目录。
- 尝试方案:
使用--stacktrace选项获取堆栈跟踪。
使用--info或--debug选项获取更多日志输出。
使用--scan选项获取完整洞察。
- 获取更多帮助请见...
构建于14秒内失败
错误:Gradle构建因未知错误失败。请查看“Run gradlew”阶段的日志了解更多信息。
本地机器配置
System: OS: macOS 13.4.1 CPU: (8) arm64 Apple M1 Memory: 564.08 MB / 16.00 GB Shell: 5.9 - /bin/zsh Binaries: Node: 18.18.2 - ~/.nvm/versions/node/v18.18.2/bin/node Yarn: 1.22.19 - /opt/homebrew/bin/yarn npm: 8.19.4 - ~/Desktop/folio3projects/projectname-mobile/node_modules/.bin/npm Watchman: 2023.10.09.00 - /opt/homebrew/bin/watchman Managers: CocoaPods: 1.13.0 - /usr/local/bin/pod SDKs: iOS SDK: Platforms: DriverKit 22.2, iOS 16.2, macOS 13.1, tvOS 16.1, watchOS 9.1 Android SDK: Not Found IDEs: Android Studio: 2022.3 AI-223.8836.35.2231.10811636 Xcode: 14.2/14C18 - /usr/bin/xcodebuild Languages: Java: 11.0.21 - /usr/bin/javac npmPackages: @react-native-community/cli: Not Found react: 18.2.0 => 18.2.0 react-native: 0.71.14 => 0.71.14 react-native-macos: Not Found npmGlobalPackages: react-native: Not Found
已尝试升级和降级Expo SDK与EAS CLI,问题仍未解决。
解决步骤
1. 检查并修复settings.gradle路径错误
错误直接指向settings.gradle第6行,大概率是该行存在无效的脚本引用(比如误写为apply from: '/'):
- 运行
expo prebuild生成本地Android配置文件,手动打开android/settings.gradle检查第6行,修正错误的路径引用,确保所有apply from或include使用正确的相对路径。 - 执行
eas build:configure重新同步Expo与Android配置,覆盖可能的错误配置。
2. 排查第三方依赖的Gradle注入问题
部分第三方库可能通过插件向Gradle注入脚本,在托管环境中路径解析异常:
- 临时移除最近添加的依赖,重新构建测试,定位问题依赖。
- 检查
app.json/app.config.js中的plugins配置,特别是涉及Gradle修改的插件,确认其路径参数配置正确。
3. 清理Expo构建缓存
托管环境的缓存可能残留错误配置:
eas build --clear-cache --platform android --profile production
4. 验证环境变量配置
若项目使用自定义环境变量指定Gradle脚本路径,确保eas.json的production profile中已正确定义变量,避免变量为空导致路径解析为根目录/。
内容的提问来源于stack exchange,提问作者Muhammad Saqlain
相关产品推荐
相关产品推荐

