Android Studio 3.5.3更换JDK版本遇阻及Lambda使用疑问
Android Studio切换JDK版本报错及Lambda表达式使用问题解决
问题描述
已在系统JAVA_HOME和Path中配置Java 16,CMD执行java -version显示版本为"16.0.2" 2021-07-20。Android Studio默认使用内置JDK路径C:\Program Files\Android\Android Studio\jre,该路径对应Java 8;项目因语言版本设置为7,无法使用Lambda表达式。尝试通过File/Project Structure/SDK Location/JDK Location切换至C:\Program Files\Java\jdk-16.0.2时,提示"Please choose a valid JDK 8 directory"。
解决方案
一、解决IDE要求JDK 8的报错
部分旧版Android Studio强制要求使用JDK 8运行IDE,但可分开配置IDE运行JDK和项目编译JDK:
- 为项目配置编译JDK:打开
File > Project Structure > Project,在Project SDK下拉选择已安装的JDK 16,同时将Project language level设为16或对应版本。 - 修改IDE运行JDK配置:
- 找到Android Studio安装目录下的
bin文件夹,打开studio.exe.vmoptions(32位系统)或studio64.exe.vmoptions(64位系统)。 - 在文件末尾添加一行:
-Djdk.home=C:\Program Files\Java\jdk-16.0.2(替换为你的JDK实际路径)。 - 重启Android Studio后,再尝试在SDK Location中更换JDK路径。
- 找到Android Studio安装目录下的
二、启用Lambda表达式支持
Lambda表达式需要Java 8及以上语言版本,按以下步骤配置:
- 打开项目根目录的
build.gradle(Project级),确保compileSdkVersion、targetSdkVersion设置为26或更高(Java 8特性依赖API 26+)。 - 打开模块级
build.gradle,在android代码块中添加:
若项目使用Kotlin,额外添加:compileOptions { sourceCompatibility JavaVersion.VERSION_16 targetCompatibility JavaVersion.VERSION_16 }kotlinOptions { jvmTarget = '16' } - 同步项目后,进入
File > Project Structure > Modules,将对应模块的Language level设为16。
内容的提问来源于stack exchange,提问作者Alan Richter
相关产品推荐
相关产品推荐

