Android Studio无法识别Java 11,配置后仍用Java 8求助
Android Studio Java 11配置不生效问题排查与解决
问题描述
我已在Android Studio的Build Tools -> Gradle中添加Java 11,完成app/build.gradle及SDK配置,但查看源码仍显示使用Java 8;运行应用时,Java 11专属特性引发缺失异常。本地java -version显示:
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
OpenJDK 64-Bit Server VM (build 11.0.11+0-b60-7772763, mixed mode)
解决方案
检查项目级build.gradle配置
确保项目根目录的build.gradle文件指定Java 11编译版本,同时使用适配Java 11的Gradle插件:buildscript { ext { compileSdkVersion = 33 // 建议使用30+的SDK版本以兼容Java11 targetSdkVersion = 33 minSdkVersion = 21 javaVersion = JavaVersion.VERSION_11 } dependencies { classpath 'com.android.tools.build:gradle:7.0.0+' // Gradle插件7.0及以上支持Java11 } } allprojects { repositories { google() mavenCentral() } tasks.withType(JavaCompile) { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } }确认模块级app/build.gradle配置
完善编译选项,添加低版本SDK兼容的脱糖库(若minSdk<24):android { compileSdkVersion rootProject.ext.compileSdkVersion defaultConfig { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion // 其他配置... } compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 coreLibraryDesugaringEnabled true // 开启脱糖以兼容低版本系统 } // 若使用Kotlin,需同步设置JVM目标版本 kotlinOptions { jvmTarget = '11' } } dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' // 脱糖依赖库 }验证Android Studio的Gradle JDK配置
- 打开
File > Settings > Build, Execution, Deployment > Build Tools > Gradle - 确认
Gradle JDK选择本地安装的Java 11(避免使用Embedded JDK) - 应用设置后重启Android Studio
- 打开
同步并清理项目
- 点击工具栏的
Sync Project with Gradle Files按钮同步配置 - 执行
Build > Clean Project和Build > Rebuild Project - 清除IDE缓存:
File > Invalidate Caches... > Invalidate and Restart
- 点击工具栏的
检查源码语言级别
打开File > Project Structure > Modules > [你的App模块] > Sources
确认Language level设置为11 - Local variable syntax for lambda parameters(或对应Java11的级别)
内容的提问来源于stack exchange,提问作者Kim Mỹ
相关产品推荐
相关产品推荐

