flutter_tools/gradle Unsupported class file major version 65 问题解决

1.问题定位 

 使用 命令 flutter doctor --verbose  

 可以查看当前项目中,使用的java的版本。

[✓] Android Studio (version 2024.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 21.0.4+-12422083-b607.1)

2.问题解决

在 Flutter 项目中,使用的 Java 版本默认与 Android Studio 环境相关联。根据你的输出,Java 二进制路径指向:

/Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java 

这表明你的项目当前正在使用 Android Studio 内置的 JDK,而不是手动安装的系统 JDK。因此,Java 版本由 Android Studio 配置决定。如果需要更改 Java 版本,必须调整 Android Studio 或 Gradle 环境的配置。以下详细说明项目中的配置影响点:

一、默认使用的是 Android Studio 的内置 JDK

Flutter 默认使用 Android Studio 自带的 JDK,这是出于简化开发环境的考虑。内置的 JDK 位置是:

/Applications/Android Studio.app/Contents/jbr/ 

你可以手动更改项目的 GradleFlutter 配置,指定使用其他版本的 JDK。


二、影响项目中 Java 版本的配置点

1. local.properties 文件

在 Flutter 项目的 android/local.properties 文件中,你可以配置 Android SDK 和 Gradle 的路径。如果你需要更改项目的 JDK 版本,可以手动在这里添加一行,明确指定 JDK 的路径。

路径:<项目根目录>/android/local.properties

添加内容:

org.gradle.java.home=/path/to/your/jdk17 

/path/to/your/jdk17 替换成正确的 JDK 安装路径。例如:

org.gradle.java.home=/Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home 

如果你的 local.properties 文件中没有手动指定 JDK,默认会使用 Android Studio 的内置 JDK。


2. gradle-wrapper.properties 文件

Gradle 使用的版本与 Java 环境直接相关。你可以检查并修改 android/gradle/wrapper/gradle-wrapper.properties 文件中的配置,确保 Gradle 的版本与 Java 版本兼容。

路径:<项目根目录>/android/gradle/wrapper/gradle-wrapper.properties

检查内容:

 
  

distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip

  • 对于 Java 17,建议使用 Gradle 7.x 系列(如 gradle-7.6-all.zip)。
  • 对于 Java 21,必须使用更高版本的 Gradle,例如 Gradle 8.2 或更高

如果 Gradle 的版本过低,会导致与 Java 21 不兼容的问题。


3. Android Studio 的 Gradle JDK 设置

项目中使用的 Java 版本也依赖 Android Studio 中的 JDK 配置。这是全局设置,会影响该 Studio 下的所有项目。

4.如果是个性化配置 

   将本地个性化配置放在 ~/.gradle/gradle.properties

你可能感兴趣的:(flutter)