MacOS运行Flutter出现Build failed异常,如何解决?
MacOS下解决Flutter构建
':app:processDebugMainManifest'失败的方法 这个错误是因为高版本Java(17+)的模块系统限制了反射访问,和旧版Gradle不兼容导致的,以下是几种可行的解决办法:
检查当前Java版本
打开终端执行java -version,确认当前Java版本,如果是17及以上,大概率是版本兼容问题。切换到兼容的Java 11版本
用brew管理的话:- 安装Java 11:
brew install openjdk@11 - 打开
~/.zshrc(或~/.bash_profile,取决于你用的shell),添加以下环境变量:export JAVA_HOME="/usr/local/opt/openjdk@11" export PATH="$JAVA_HOME/bin:$PATH" - 执行
source ~/.zshrc让配置生效
- 安装Java 11:
升级项目Gradle及插件版本
- 打开项目
android/gradle/wrapper/gradle-wrapper.properties,修改distributionUrl为兼容高Java版本的Gradle:distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip - 打开
android/build.gradle,更新Gradle插件版本:dependencies { classpath 'com.android.tools.build:gradle:7.4.2' // 保留其他原有依赖 }
- 打开项目
添加Java参数绕过反射限制(无需换Java版本)
打开项目android/gradle.properties,添加以下配置:org.gradle.jvmargs=--add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED
执行完以上任意一种方法后,重新执行flutter run即可尝试构建。
内容的提问来源于stack exchange,提问作者user26611416
相关产品推荐
相关产品推荐

