如何解决Flutter执行中的:app:processDebugMainManifest错误
解决Gradle构建中
processDebugMainManifest任务失败问题 问题详情
构建过程报错:
FAILURE: 构建过程中出现异常导致失败。
- 出错原因:任务':app:processDebugMainManifest'执行失败。
无法访问私有最终字段java.lang.String java.io.File.path:模块java.base未向未命名模块@79c9bfe4“opens java.io”
- BUILD FAILED in 13s
解决方案
以下是三种可行的解决方式,根据项目实际情况选择:
1. 切换兼容的JDK版本
该问题多因使用JDK16及以上版本,而旧版Gradle不支持Java模块系统的权限控制。建议切换到JDK8或JDK11(Android项目普遍兼容的LTS版本):
- 在IDE(如Android Studio)中,打开
File > Project Structure > SDK Location,将JDK路径改为对应版本的安装目录。 - 或通过环境变量
JAVA_HOME指定低版本JDK路径。
2. 升级Gradle及Android Gradle Plugin(AGP)版本
若需保留高版本JDK,需升级到支持模块权限配置的Gradle版本:
- 修改项目根目录下的
build.gradle(或build.gradle.kts),将AGP版本升级至7.0及以上,同时匹配对应Gradle版本(如AGP 7.0对应Gradle 7.0,AGP 8.0对应Gradle 8.0)。
示例(Groovy语法):buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' } } task clean(type: Delete) { delete rootProject.buildDir } - 修改
gradle/wrapper/gradle-wrapper.properties中的distributionUrl:distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
3. 添加JVM参数强制开放模块权限
在项目根目录的gradle.properties文件中添加以下参数,强制让java.base模块向未命名模块开放java.io包的访问权限:
org.gradle.jvmargs=--add-opens java.base/java.io=ALL-UNNAMED
内容的提问来源于stack exchange,提问作者user26611416
相关产品推荐
相关产品推荐

