Mac M1 Sonoma环境下EAS本地构建Android时Gradlew执行失败求助
EAS Android本地构建Gradle错误排查方案
一、Java版本是核心排查点
没错,Java版本不兼容是这类Gradle构建错误的高频原因。Expo/EAS对Android构建的Java版本有明确要求:
- AGP(Android Gradle Plugin)7.0+ 要求Java 11;AGP 8.0+ 则必须用Java 17
- 先检查当前Java版本:
java -version - 版本不符的话,可通过
brew或jenv切换:# 示例:安装并切换到Java 11 brew install openjdk@11 jenv local 11
二、Gradle环境与缓存清理
- 进入android目录,彻底清理缓存后重试:
./gradlew clean rm -rf .gradle - 检查
android/gradle/wrapper/gradle-wrapper.properties中的distributionUrl,确保Gradle版本与AGP版本匹配(比如AGP 7.4对应Gradle 7.5+) - 手动指定Java路径到
gradle.properties:org.gradle.java.home=/Library/Java/JavaVirtualMachines/openjdk-11.jdk/Contents/Home
三、M1架构适配调整
Mac M1的ARM架构可能引发依赖兼容问题:
- 确保Android SDK的NDK版本在25.x及以上
- 在
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.bundle.enableUncompressedNativeLibs=false
四、依赖与模块冲突排查
- 执行
./gradlew dependencies查看依赖树,检查第三方库是否存在版本冲突 - 暂时移除非核心第三方库,尝试最小化构建,定位是否是特定库导致的错误
- 升级
expo和eas-cli到最新版本:npm install expo@latest npm install eas-cli@latest
内容的提问来源于stack exchange,提问作者Dan Sherwin
相关产品推荐
相关产品推荐

