执行Rosetta 2安装命令无效,Flutter因架构问题运行失败求助
解决Apple Silicon Mac上Flutter执行Java命令架构不兼容且无法安装Rosetta 2的问题
问题分析
核心矛盾是Android Studio自带的Java为x86_64架构,与Apple Silicon(ARM)Mac硬件架构不兼容,且系统无法安装Rosetta 2来兼容x86_64程序,导致Flutter无法执行相关Java命令。
解决方案
1. 安装ARM架构独立JDK并配置环境变量
- 下载适配Apple Silicon的ARM版JDK(如Azul Zulu、Oracle JDK的ARM版本)
- 配置系统环境变量,让Flutter优先使用ARM版JDK:
- 打开终端,编辑shell配置文件(
~/.zshrc或~/.bash_profile,取决于你使用的shell) - 添加以下代码(替换为你的ARM JDK实际安装路径):
export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH - 执行
source ~/.zshrc(对应你的配置文件)使配置生效 - 验证:运行
java -version,输出信息中需包含aarch64或arm64字样,确认使用的是ARM架构JDK
- 打开终端,编辑shell配置文件(
2. 重新安装Apple Silicon版Android Studio
- 前往Android Studio官网下载Apple Silicon专属版本(不要下载x86_64版本)
- 安装完成后,执行以下命令验证内置JDK架构:
确认输出包含/Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java -versionarm64,说明内置JDK适配ARM架构
3. 临时替代方案
如果暂时无法更换JDK或Android Studio版本,可尝试创建Flutter项目时指定使用本地ARM JDK:
flutter create --java-home=/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home my_project
内容的提问来源于stack exchange,提问作者Jeong hyunseok
相关产品推荐
相关产品推荐

