如何解决Android构建错误“当前配置使用Java 19和Gradle 7.5”
问题描述
项目根build.gradle配置
buildscript { ext { compose_version = '1.4.0-alpha02' } } plugins { id 'com.android.application' version '8.0.0-alpha10' apply false id 'com.android.library' version '8.0.0-alpha10' apply false id 'org.jetbrains.kotlin.android' version '1.7.21' apply false id 'com.google.dagger.hilt.android' version '2.44.2' apply false } task clean(type: Delete) { delete rootProject.buildDir }
Android Studio版本信息
Android Studio Flamingo | 2022.2.1 Canary 10 Build #AI-222.4459.24.2221.9409768, built on December 15, 2022 Runtime version: 17.0.4.1+0-17.0.4.1b469.62-9127311 x86_64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. macOS 10.15.7 GC: G1 Young Generation, G1 Old Generation Memory: 4096M Cores: 12 Metal Rendering is ON Registry: external.system.auto.import.disabled=true ide.text.editor.with.preview.show.floating.toolbar=false gradle.version.catalogs.dynamic.support=true ide.images.show.chessboard=true Non-Bundled Plugins: com.android.aas (3.5.1) com.jetbrains.kmm (0.5.1(222)-30)
多模块Java/Kotlin配置
每个模块的build.gradle中配置如下:
compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 coreLibraryDesugaringEnabled true } kotlinOptions { jvmTarget = '11' freeCompilerArgs += [ "-opt-in=androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi"] }
操作与报错情况
原本项目构建正常,在Android Studio偏好设置中设置Gradle JDK为Java 18后,在app模块的gradle构建文件中添加额外的-opt-in=kotlinx.coroutines.ObsoleteCoroutinesApi参数,构建失败,报错信息:
Starting Gradle Daemon... Gradle Daemon started in 3 s 350 ms FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring project ':app'. > Could not open cp_proj generic class cache for build file '/Users/anonymous/github/mobile-android-app/app/build.gradle' (/Users/beecheya/.gradle/caches/7.5/scripts/3am3ttbat0qsqgsjlhtiaj5se). > BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 63
同时收到提示:
Unsupported Java. Your build is currently configured to use Java 19 and Gradle 7.5. Possible solution: - Open Gradle wrapper settings, change `distributionUrl` property to use compatible Gradle version and reload the project
Gradle Wrapper内容
#Tue Oct 25 07:38:32 BST 2022 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists
解决方案
核心问题
报错里的Unsupported class file major version 63对应Java 19,而当前使用的Gradle 7.5不支持Java 19(Gradle 7.5最高兼容Java 18,官方推荐搭配Java 11/17)。另外虽然设置了Gradle JDK为Java 18,但系统或Android Studio可能存在Java 19的环境干扰,导致Gradle实际调用了不兼容的Java版本。添加参数后触发了新的缓存生成或Daemon重启,才让版本冲突问题暴露出来。
具体修复步骤
升级Gradle版本
编辑项目根目录下的gradle/wrapper/gradle-wrapper.properties,将distributionUrl替换为支持Java 19的Gradle版本,比如Gradle 7.6及以上(推荐使用7.6或8.x):distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip统一Java版本配置
- 打开Android Studio偏好设置(
File > Settings或Android Studio > Settings),进入Build, Execution, Deployment > Build Tools > Gradle,确认Gradle JDK设置为Java 11或17(模块编译目标为Java 11,用更高版本JDK编译低版本目标没问题,且和大多数Gradle版本兼容性更好),避免使用Java 18/19。 - 确保所有模块的
compileOptions和kotlinOptions中Java版本统一,保持sourceCompatibility、targetCompatibility和jvmTarget都为11,不要混用不同版本。
- 打开Android Studio偏好设置(
清理缓存并重新同步
- 执行
File > Invalidate Caches... > Invalidate and Restart,清除Android Studio缓存。 - 手动删除项目根目录的
.gradle文件夹和用户目录下的~/.gradle/caches文件夹,然后重新执行构建。
- 执行
内容的提问来源于stack exchange,提问作者Hector
相关产品推荐
相关产品推荐

