Android Studio构建报错:无法访问java.lang.Record类文件
解决Android Studio构建时
cannot access Record报错的方案 核心原因
尽管你本地已配置JDK 17,但Android Gradle插件(AGP)默认可能限制了源/目标兼容性,或是未在构建流程中正确关联JDK 17,导致构建阶段无法找到java.lang.Record类。
具体修复步骤
1. 修改模块级build.gradle(或build.gradle.kts)配置
确保源兼容性、目标兼容性及Kotlin的JVM目标均设置为17:
- Groovy DSL示例:
android { compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = "17" } }
- Kotlin DSL示例:
android { compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = "17" } }
2. 校验项目级JDK配置
- 打开
File > Project Structure > Project,确认Project SDK选择JDK 17,Project language level设置为17 - Sealed classes, interfaces, records。 - 进入
Modules > [你的模块] > Sources,检查Language level是否为17。
3. 清理并重新构建
- 执行
Build > Clean Project,再执行Build > Rebuild Project清除旧构建缓存。 - 若无效,手动删除项目根目录下的
.gradle和build文件夹后重新构建。
4. 升级AGP版本
AGP 7.3及以上版本对JDK 17的支持更完善,在项目级build.gradle/build.gradle.kts中升级插件版本:
// 项目级build.gradle示例 buildscript { dependencies { classpath 'com.android.tools.build:gradle:7.3.0' // 或更高兼容版本 } }
5. 排查第三方依赖兼容性
检查项目依赖的第三方库是否使用低版本Java编译,尝试将相关依赖升级到最新版本,避免版本冲突。
内容的提问来源于stack exchange,提问作者Rishabh Kabra
相关产品推荐
相关产品推荐

