React Native安卓编译报错:需确保Gradle运行在JDK而非JRE上
解决方案
1. 确认Shell配置文件加载逻辑
当前macOS默认终端为zsh,默认读取~/.zshrc而非~/.bash_profile,你配置的JAVA_HOME可能未实际生效:
- 执行
echo $SHELL确认当前使用的Shell类型 - 如果输出为
/bin/zsh,将~/.bash_profile中所有环境变量配置复制到~/.zshrc中 - 执行
source ~/.zshrc使配置立即生效,再执行echo $JAVA_HOME验证是否输出正确的JDK路径
2. 调整Java路径优先级
系统默认调用的Java路径优先级高于你配置的JAVA_HOME,导致Gradle使用了自带的JRE而非JDK:
在你的Shell配置文件(~/.bash_profile或~/.zshrc)中添加以下配置,将JDK路径提到PATH最前面:
export PATH=$JAVA_HOME/bin:$PATH
重新source配置文件后,执行which java确认输出路径为Android Studio自带的JDK路径即可。
3. 清理缓存重新编译
执行以下命令清除旧的编译缓存和依赖:
cd android ./gradlew clean cd .. rm -rf node_modules && npm install
完成后重新执行npx react-native run-android即可。
4. 兜底方案:强制指定Gradle JDK路径
如果以上方案仍未生效,直接在android/gradle.properties文件中添加配置,手动指定Gradle使用的JDK路径:
org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
内容的提问来源于stack exchange,提问作者Gurmukh Singh
相关产品推荐
相关产品推荐

