Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.

Intro

在 macbook 上新安装的 Android Studio ,第一次启动 Android 项目。报错如下:

在这里插入图片描述

An exception occurred applying plugin request [id: 'com.android.application', version: '7.2.0-alpha01']
> Failed to apply plugin 'com.android.internal.application'.
   > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
     Your current JDK is located in  /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre
     You can try some of the following options:
       - changing the IDE settings.
       - changing the JAVA_HOME environment variable.
       - changing `org.gradle.java.home` in `gradle.properties`.

问题原因

当前项目使用的 Android Gradle Plugin 为 7.2.0

settings.gradle 中的 com.android.application plugin 的版本号。
在这里插入图片描述

Android Gradle Plugin 7.2.0 要求的 JDK版本为11

见:https://developer.android.google.cn/build/releases/past-releases/agp-7-2-0-release-notes?hl=en
在这里插入图片描述在之后的解决过程中发现,本项目当前默认使用了JDK 1.8 【这也是本次问题主要要改的地方】。

解决

File --> Project Structure --> SDK Location --> Gradle Settings

在这里插入图片描述

主要改两个位置:
Use Gradle from 选择 gradle-wrapper.properties file.
Gradle JDK 选择你自己亲手安装配置了JAVA_HOME的那个、且需要JDK版本为11
在这里插入图片描述
改过之后重启一下 Android Studio,再启动项目。成功。

其他

AGP(Android Gradle Plugin)

在有些地方会见到这样的简写,用apg代称com.android.application

AGP版本和JDK版本的适配

根据 https://developer.android.google.cn/build/releases/past-releases/agp-8-0-0-release-notes?hl=en

AGP 从 7.0 开始就要求 JDK 11 及以上。
AGP 从 8.0 开始就要求 JDK 17 及以上。

在这里插入图片描述

在这里插入图片描述

Gradle 版本 和 Android Gradle Plugin 版本

File --> Project Structure 中可以看到两个选项,这两个选项中说的版本分别是在项目哪里配置的呢?

  1. Gradle 版本,配置于 ./gradle/wrapper/gradle-wrapper.properties 中的 distributionUrl
  2. Android Gradle Plugin 版本,配置于 ./build.gradle 中的 com.android.application 插件版本处。

在这里插入图片描述