当前位置:首页 » 《我的小黑屋》 » 正文

Gradle升级后报错:has been compiled by a more recent version of the Java Runtime (class file version 55.0)

1 人参与  2024年11月26日 10:01  分类 : 《我的小黑屋》  评论

点击全文阅读


在 Android 项目开发中,构建工具(Gradle)的版本与 JDK 环境的兼容性是影响项目编译和运行的重要因素。如果配置不当,很容易出现奇怪的错误。本文结合实际开发中遇到的问题,解析其根本原因。

我这个是升级Gradle后遇到的问题,你如果没有升级Gradle请另寻其他方案。


问题描述

在升级项目的 Gradle 插件版本后,构建过程中出现以下错误:

* What went wrong:java.lang.UnsupportedClassVersionError: com/android/build/gradle/AppPlugin has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0> com/android/build/gradle/AppPlugin has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

关键信息:

Class file version 55.0:表示需要 Java 11 或更高版本。Class file version 52.0:当前使用的是 Java 8

在配置项目时,Gradle 插件版本更新为 8.7.2,同时构建脚本依赖了较新的工具链。但由于环境中使用的 JDK 版本为 Java 8,导致插件无法被正确加载。


问题原因分析

在 Android Gradle 构建中:

Gradle 插件与 JDK 的兼容性
Gradle 插件的不同版本对 JDK 的要求不同: Gradle 插件 8.x 及以上 需要 Java 11。Gradle 插件 7.x 或更低版本 兼容 Java 8JVM 编译的 Class 文件版本
Java 的每个主要版本对应一个 Class file version: Java 8:Class file version 52.0Java 11:Class file version 55.0Java 17:Class file version 61.0 开发环境未同步更新
项目中 Gradle 插件版本升级后,未同时升级 JDK,导致版本不匹配。

解决方案

针对上述问题,以下是两种解决方案:

方案 1:升级 JDK 到 Java 11 或以上

适用场景
希望使用最新的 Gradle 插件和构建工具特性,同时不受旧版本限制。

步骤 1:安装 Java 11 或以上版本

Windows 环境

下载 OpenJDK 或 Azul Zulu JDK。安装后,设置 JAVA_HOME 为新版本的路径。

macOS/Linux 环境
使用包管理工具安装:

# macOS 使用 Homebrewbrew install openjdk@11# Ubuntu/Debian 使用 APTsudo apt updatesudo apt install openjdk-11-jdk
步骤 2:配置 Gradle 使用正确的 JDK

即使安装了新版本 JDK,也需要确保 Gradle 使用它。可以通过以下方式实现:

gradle.properties 文件中添加:
org.gradle.java.home=/path/to/java11
或者在命令行中设置环境变量:
export JAVA_HOME=/path/to/java11export PATH=$JAVA_HOME/bin:$PATH
步骤 3:验证

执行以下命令,检查 Gradle 使用的 JVM 版本:

./gradlew -v

确保输出的 JVM 部分显示 Java 11 或更高版本。


方案 2:降级 Gradle 插件版本

适用场景
项目需要保持兼容 Java 8,暂时无法升级到 Java 11 或以上。

步骤 1:降级 Gradle 插件

修改项目根目录下的 build.gradle 文件,将 Gradle 插件版本降级到支持 Java 8 的最高版本(例如 7.0.2):

dependencies {    classpath 'com.android.tools.build:gradle:7.0.2'}
步骤 2:调整 Gradle 版本

gradle-wrapper.properties 文件中,调整 Gradle 分发版本:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
步骤 3:验证

清理项目并重新构建:

./gradlew clean build

最佳实践

匹配 Gradle 插件版本与 JDK 版本:

Java 8:支持 Gradle 插件 7.x 及以下。Java 11 及以上:支持 Gradle 插件 8.x 及以上。

及时更新构建工具:
升级 Gradle 插件时,建议同步升级 JDK 和 Gradle 分发版本,以确保兼容性。


点击全文阅读


本文链接:http://zhangshiyu.com/post/192142.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1