更新Java16与Android Studio Arctic Fox后Flutter项目运行报InvokerHelper初始化错误
问题根因
Gradle 6.1.1内置的Groovy版本与JDK 16不兼容,仅Gradle 6.3及以上版本支持JDK 16,因此调用org.codehaus.groovy.runtime.InvokerHelper类时初始化失败。
Android原生项目可正常运行是因为Android Studio Arctic Fox默认自带内嵌JDK 11,原生项目默认调用该内嵌JDK运行构建;Flutter项目默认调用系统全局安装的JDK 16,因此出现报错。
可行解决方案(无需升级Gradle版本)
方案1:修改Android Studio Gradle运行JDK配置
- 打开Flutter项目对应的Android Studio实例,依次进入
File > Settings > Build, Execution, Deployment > Build Tools > Gradle(Mac系统路径为Android Studio > Preferences > Build, Execution, Deployment > Build Tools > Gradle) - 在「Gradle JDK」下拉选项中,选择带「Embedded JDK」标识的Android Studio自带JDK 11版本
- 点击「Apply」保存配置后,重启当前Android Studio实例即可
方案2:项目级指定Gradle运行JDK路径
如果方案1不生效,可在项目配置中强制指定Gradle使用的JDK路径,避免调用系统全局JDK 16:
- 打开Flutter项目下的
android/gradle.properties文件 - 添加如下配置,将路径替换为你本地Android Studio内嵌JDK的实际路径:
# Windows系统示例 org.gradle.java.home=C\:\\Program Files\\Android\\Android Studio\\jre # Mac系统示例 org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/Contents/Home # Linux系统示例 org.gradle.java.home=/opt/android-studio/jre
- 保存文件后,执行
flutter clean清理本地构建缓存,再重新运行项目即可
临时终端运行适配
如果需要在终端执行flutter run等命令,可在运行前临时覆盖当前终端的JAVA_HOME环境变量:
- Windows cmd执行:
set JAVA_HOME=内嵌JDK的绝对路径 - Mac/Linux终端执行:
export JAVA_HOME=内嵌JDK的绝对路径
内容的提问来源于stack exchange,提问作者spongyboss
相关产品推荐
相关产品推荐

