如何在Android Studio中通过命令行执行「立即同步」操作
问题原因
报错java.lang.IllegalArgumentException: Unsupported class file major version 63的核心原因是Gradle 7.4.2不兼容Java 19:
- Class file major version 63对应Java 19版本
- Gradle 7.x系列官方支持的JDK范围是Java 8到Java 17,Java 19不在兼容列表内
手动同步能正常工作,是因为IDE自动切换到了兼容的JDK版本(比如Java 17)执行同步,而命令行默认使用系统全局的Java 19,导致版本不匹配。
解决方案
方案1:降级JDK到Java 17(推荐,匹配当前Gradle版本)
- 安装OpenJDK 17并记录安装路径
- 在项目根目录的
gradle.properties文件中添加配置,指定Gradle使用的JDK:org.gradle.java.home=/path/to/your/openjdk17 - 命令行执行同步相关操作:
- 清理项目:
./gradlew clean - 触发依赖同步:
./gradlew build --refresh-dependencies(Gradle命令行无直接sync命令,此命令会强制刷新依赖并同步配置)
- 清理项目:
方案2:升级Gradle到支持Java 19的版本
- 修改项目根目录
gradle/wrapper/gradle-wrapper.properties中的distributionUrl,替换为支持Java 19的Gradle版本(比如7.6.3,是7.x系列最后一个兼容Java 19的版本,或直接升级到8.x):distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-bin.zip - 执行命令更新Gradle wrapper:
./gradlew wrapper --gradle-version 7.6.3 - 之后即可正常执行:
./gradlew clean ./gradlew build --refresh-dependencies
临时应急方案(无需修改版本)
命令行执行时临时指定兼容的JDK路径:
JAVA_HOME=/path/to/openjdk17 ./gradlew clean # 或者通过系统属性指定 ./gradlew clean -Dorg.gradle.java.home=/path/to/openjdk17
内容的提问来源于stack exchange,提问作者Trennel
相关产品推荐
相关产品推荐

