如何解决Android Studio运行Flutter时processDebugMainManifest DEBUG报错
Flutter Android构建processDebugMainManifest报错解决方案
报错核心信息
Unable to make field private final java.lang.String java.io.File.path accessible: module java.base does not "opens java.io" to unnamed module
报错根因
该问题由JDK版本与Gradle版本不兼容导致:JDK 16及以上版本新增了强模块访问限制,低版本Gradle未适配该规则,无法访问JDK内部私有属性,最终触发构建失败。
可执行修复方案
方案1:添加JVM访问权限参数(最快生效)
找到项目下android/gradle.properties文件,找到org.gradle.jvmargs配置项,在现有值末尾追加两个参数:
org.gradle.jvmargs=-Xmx1536M --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED
如果文件中没有该配置项,直接将上面整行添加到文件末尾即可。
方案2:适配Gradle与JDK版本(长期稳定)
如果你使用的是JDK 17,请将项目Gradle相关配置升级到适配版本:
- 打开
android/build.gradle文件,修改AGP版本到7.2及以上:buildscript { dependencies { classpath 'com.android.tools.build:gradle:7.4.0' } } - 打开
android/gradle/wrapper/gradle-wrapper.properties文件,修改Gradle版本到7.3及以上:distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
方案3:指定Android Studio内置JDK
如果本地安装了多版本JDK,可直接指定Android Studio自带的适配JDK:
- 打开Android Studio设置:
File > Settings > Build, Execution, Deployment > Build Tools > Gradle - 找到
Gradle JDK选项,选择Embedded JDK或者jbr即可,不要使用本地安装的外部JDK。
验证操作
所有修改完成后,先执行flutter clean清理缓存,再重新运行项目即可正常构建。
内容的提问来源于stack exchange,提问作者Sujeet Kumar
相关产品推荐
相关产品推荐

