React Native Expo项目构建APK时Run gradlew错误的解决方法
解决Expo项目EAS Build Android构建失败的Gradle问题
问题本质
报错里的content()方法是Gradle 6.0及以上版本才支持的仓库配置语法,但当前EAS构建环境用的是Gradle 4.10.1,版本不兼容导致初始化脚本执行失败。Expo托管项目本地没有android目录是正常情况,不能直接修改本地Gradle文件,需通过EAS配置调整构建环境。
解决步骤
1. 指定EAS构建使用的Gradle版本
打开项目根目录的eas.json,给preview构建profile添加Android Gradle版本配置:
{ "build": { "preview": { "android": { "gradleVersion": "7.5" // 选择6.0以上的稳定版本,比如7.5、7.6均可 } } } }
这个配置会强制EAS构建环境使用指定的高版本Gradle,解决旧版本不支持content()语法的问题。
2. 禁用冲突的Gradle初始化脚本
报错指向的/home/expo/.gradle/init.gradle是构建环境中的全局初始化脚本,里面使用了高版本语法。可通过EAS配置禁用它:
在eas.json的preview profile里添加:
{ "build": { "preview": { "android": { "gradleInitScriptPath": null } } } }
或者通过环境变量让Gradle加载空的用户目录,跳过全局脚本:
{ "build": { "preview": { "env": { "GRADLE_USER_HOME": "/tmp/empty-gradle-home" } } } }
3. 重新执行构建
保存eas.json修改后,重新运行构建命令:
eas build -p android --profile preview
可选:清除EAS构建缓存
如果之前的缓存导致配置不生效,先清除缓存再构建:
eas build:clear-cache
内容的提问来源于stack exchange,提问作者Steph
相关产品推荐
相关产品推荐

