M1 Mac下React Native项目Gradle同步及run-android报错求助
解决M1 Mac上React Native与Gradle同步及run-android的错误
1. 修复Android SDK配置
环境信息显示Android SDK: Not Found,这是核心问题之一:
- 打开Android Studio,进入
Preferences > Appearance & Behavior > System Settings > Android SDK,确认SDK路径(默认是~/Library/Android/sdk) - 在终端编辑
~/.zshrc文件,添加环境变量:export ANDROID_HOME=$HOME/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使配置生效,再运行echo $ANDROID_HOME确认路径正确
2. 修复损坏的React Native AAR包
Unexpected end of ZLIB input stream说明下载的react-native-0.66.4.aar包损坏,导致解压失败:
- 删除本地依赖和缓存:
rm -rf node_modules # yarn用户执行 yarn cache clean # npm用户执行 npm cache clean --force rm -rf ~/.gradle/caches - 手动删除项目中已损坏的AAR目录:
rm -rf ./node_modules/react-native/android/com/facebook/react/react-native/0.66.4/ - 重新安装依赖:
yarn install # 或 npm install
3. 适配M1 Mac的Gradle配置
M1芯片的arm64架构需要额外配置Gradle兼容性:
- 编辑项目根目录下的
android/gradle.properties,添加或修改以下配置:org.gradle.jvmargs=-Xmx2048m --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED android.useAndroidX=true android.enableJetifier=true # 若使用M1兼容的arm64 JDK(如Zulu 11),指定JDK路径 org.gradle.java.home=/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home - 确保Android Studio使用arm64版本的JDK(推荐Zulu JDK,避免x86版本的兼容性问题)
4. 重新构建项目
- 进入Android目录执行清理:
cd android && ./gradlew clean - 回到项目根目录重新运行:
npx react-native run-android
内容的提问来源于stack exchange,提问作者Amir Doreh
相关产品推荐
相关产品推荐

