You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Android Studio Arctic Fox后Flutter项目构建失败如何解决

问题核心原因

你的报错是JDK 16与项目使用的低版本Gradle不兼容导致的,高版本JDK收紧了模块内部字段的访问权限,低版本Gradle未适配该规则,就会抛出module java.base does not "opens java.io" to unnamed module异常。

解决方案

方案一:使用Android Studio自带JDK(最推荐,稳定性最高)

Arctic Fox版本自带适配好的JDK 11,替换全局JDK即可解决问题:

  • 打开Android Studio的Preferences(macOS系统)/Settings(Windows系统),依次进入Build, Execution, Deployment > Build Tools > Gradle
  • 在Gradle JDK下拉选项中选择Android Studio default JDK
  • 保存设置后,在项目根目录执行flutter clean清理缓存,重新运行构建即可

如果你的Gradle设置中找不到自带JDK,是因为Arctic Fox在mac系统上的JDK路径规则有变动,执行以下命令创建软链接后重启Android Studio即可识别:

cd /Applications/Android\ Studio.app/Contents/jre
ln -s ../jre jdk
ln -s "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk

方案二:升级Gradle版本适配JDK 16

如果你需要保留JDK 16,将项目的Gradle版本升级到7.0+即可适配,Gradle 7.0及以上版本官方支持JDK 16:

  1. 打开项目android/gradle/wrapper/gradle-wrapper.properties文件,修改distributionUrl参数为高版本Gradle地址,示例如下:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
  1. 打开项目android/build.gradle文件,修改Android Gradle插件版本为对应匹配的7.0.0:
dependencies {
    classpath 'com.android.tools.build:gradle:7.0.0'
    // 其余依赖配置保持不变
}
  1. 执行flutter clean清理缓存后重新构建即可

方案三:添加JVM启动参数临时绕过权限限制

如果只是临时调试不想改动环境,可以给Gradle添加权限开放参数绕过限制,打开android/gradle.properties文件,添加如下配置:

org.gradle.jvmargs=--add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED

该方案属于临时绕过方案,不推荐长期使用,可能会引发其他隐性适配问题。

附加说明

你flutter doctor检测出的Flutter、Dart插件未安装问题,可以在Android Studio的Plugins市场搜索安装对应插件,避免后续出现其他适配异常。

内容的提问来源于stack exchange,提问作者newbision

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 03:27:03