M1芯片Mac运行react-native run-android找不到Android Studio及SDK如何解决
问题原因
- Gradle与JDK版本不匹配:你当前项目使用的Gradle 6.8版本最高仅支持JDK 15,且JDK 8及以上版本已经移除了
-XX:MaxPermSize参数,直接触发了JVM启动失败的报错。 - 环境变量配置文件错误:你配置环境变量的
.hash_profile是无效文件名,Mac系统默认不会加载该文件的配置,因此Android SDK相关的环境变量未全局生效,导致react-native doctor无法识别已安装的SDK和Android Studio。
修复步骤
1. 适配JDK版本(二选一即可)
方案A:降级JDK(推荐,稳定性更高)
卸载当前安装的Zulu JDK 17,安装适配M1芯片的Zulu JDK 11,这是React Native官方推荐的兼容版本,安装完成后执行java -version确认版本为11.x即可。
方案B:升级Gradle版本(适合需要保留JDK 17的场景)
- 打开项目
android/gradle/wrapper/gradle-wrapper.properties文件,修改distributionUrl配置,将Gradle版本升级到7.3及以上,示例:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
- 打开项目
android/build.gradle文件,修改Android Gradle插件版本和Gradle版本匹配,Gradle 7.5.1对应的插件版本为7.2.1,示例:
buildscript { dependencies { classpath 'com.android.tools.build:gradle:7.2.1' } }
2. 修正环境变量配置
- 确认你当前使用的shell类型:终端执行
echo $SHELL,如果输出/bin/zsh则编辑~/.zshrc文件,如果输出/bin/bash则编辑~/.bash_profile文件,不要使用无效的.hash_profile文件。 - 在配置文件中加入以下内容(原有正确的Android SDK配置保留,新增JAVA_HOME配置):
# 新增JDK配置,对应JDK 11版本 export JAVA_HOME=$(/usr/libexec/java_home -v 11) # 原有Android SDK配置保留 export ANDROID_HOME=/Users/waihein/Library/Android/sdk export PATH=$PATH:$ANDROID_HOME/emulator export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/tools/bin export PATH=$PATH:$ANDROID_HOME/platform-tools/
- 执行
source ~/.zshrc(或对应你的shell配置文件)让配置立即生效,执行echo $ANDROID_HOME、echo $JAVA_HOME确认路径可以正常输出。
3. 修复Android Studio识别问题
M1芯片版Android Studio的JRE路径和旧版本不同,执行以下命令创建软链接即可让react-native doctor正确识别:
ln -s /Applications/Android\ Studio.app/Contents/jbr ~/Library/Android/sdk/jre
4. 验证运行
进入项目android目录清除缓存:
cd android && ./gradlew clean
回到项目根目录重新执行运行命令即可:
react-native run-android
内容的提问来源于stack exchange,提问作者Wai Yan Hein
相关产品推荐
相关产品推荐

