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

Android Studio项目编译失败:module java.base未opens java.io至未命名模块

解决Gradle 7.6.1 + JDK 21编译Android项目的Manifest处理失败问题

核心错误原因

这个错误源于JDK 21的模块系统访问限制,Gradle 7.6.1版本对JDK 21的兼容性不足,无法正常访问JDK内部的java.io.File.path私有字段,导致:app:processDebugMainManifest任务执行失败。

具体解决方案

1. 升级Gradle到兼容JDK 21的版本

Gradle 8.0及以上版本正式支持JDK 21,需同步升级Android Gradle Plugin(AGP)到对应兼容版本:

  • 修改项目根目录下的gradle/wrapper/gradle-wrapper.properties,更新distributionUrl:
    distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip
    
  • 修改项目根目录的build.gradle(或build.gradle.kts)中的AGP版本,示例(Gradle 8.6对应AGP 8.3.0):
    dependencies {
        classpath 'com.android.tools.build:gradle:8.3.0'
    }
    
    注意:需严格保持Gradle与AGP版本的兼容性,避免版本不匹配引发新问题。

2. 降级JDK到Gradle 7.6.1支持的版本

若不想升级Gradle,可将JDK降级至JDK 17(Gradle 7.6.x系列最高支持JDK 17):

  • 在Android Studio中通过File > Project Structure > SDK Location切换JDK路径到JDK 17的安装目录;
  • 或在项目根目录的gradle.properties中指定JDK路径:
    org.gradle.java.home=/your/jdk17/install/path
    

3. 临时添加JVM参数绕过模块限制(应急方案)

在项目根目录的gradle.properties中添加以下JVM参数,强制开放JDK模块访问权限:

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

此方法仅作为临时应急手段,长期使用可能引发潜在兼容性风险,不推荐作为最终解决方案。

处理XML相关警告

针对XML命名空间映射及元素异常警告,需逐一排查:

  • 确保所有XML文件(Manifest、布局等)顶部正确声明Android核心命名空间:
    xmlns:android="http://schemas.android.com/apk/res/android"
    
  • 检查自定义命名空间(如xmlns:app)是否正确关联到对应资源路径;
  • 修复XML元素的拼写错误、未闭合标签等语法问题,可借助Android Studio的XML编辑器实时提示完成修正。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 13:55:29