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 assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source! Launching lib\main.dart on AOSP on IA Emulator in debug mode... Support for Android x86 targets will be removed in the next stable release after 3.27. See https://github.com/flutter/flutter/issues/157543 for details. Running Gradle task 'assembleDebug'... FAILURE: Build failed with an exception. * What went wrong: Could not open cp_settings generic class cache for settings file 'D:\and sroid\Android\work\untitled5\android\settings.gradle' (C:\Users\����һ����\.gradle\caches\7.5\scripts\cgwnh8p454v85dv1xmzoedwjx). > BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 65 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 1s ┌─ Flutter Fix ───────────────────────────────────────────────────────────────────────────────────┐ │ [!] Your project's Gradle version is incompatible with the Java version that Flutter is using │ │ for Gradle. │ │ │ │ If you recently upgraded Android Studio, consult the migration guide at │ │ https://flutter.dev/to/java-gradle-incompatibility. │ │ │ │ Otherwise, to fix this issue, first, check the Java version used by Flutter by running `flutter │ │ doctor --verbose`. │ │ │ │ Then, update the Gradle versio
03-18
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source! Launching lib\main.dart on AOSP on IA Emulator in debug mode... Support for Android x86 targets will be removed in the next stable release after 3.27. See https://github.com/flutter/flutter/issues/157543 for details. Running Gradle task 'assembleDebug'... ????: ?????????????????? worker.org.gradle.process.internal.worker.GradleWorkerMain ???: java.lang.ClassNotFoundException: worker.org.gradle.process.internal.worker.GradleWorkerMain Could not write standard input to Gradle Worker Daemon 3. java.io.IOException: �ܵ����ڱ��رա� at java.base/java.io.FileOutputStream.writeBytes(Native Method) at java.base/java.io.FileOutputStream.write(Unknown Source) at java.base/java.io.BufferedOutputStream.flushBuffer(Unknown Source) at java.base/java.io.BufferedOutputStream.implFlush(Unknown Source) at java.base/java.io.BufferedOutputStream.flush(Unknown Source) at org.gradle.process.internal.streams.ExecOutputHandleRunner.forwardContent(ExecOutputHandleRunner.java:68) at org.gradle.process.internal.streams.ExecOutputHandleRunner.run(ExecOutputHandleRunner.java:53) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61) at java.base/java.lang.Thread.run(Unknown Source) FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':gradle:compileGroovy'. > Failed to run Gradle Worker Daemon > Process 'Gradle Worker Daemon 3' finished with non-zero exit value 1 * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug
03-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值