运行Android应用时出现Gradle构建错误:未找到Java编译器
报错信息
Could not run phased build action using connection to Gradle distribution 'https://services.gradle.org/distributions/gradle-8.6-all.zip'.
java.lang.RuntimeException: org.gradle.api.internal.catalog.GeneratedClassCompilationException: No Java compiler found, please ensure you are running Gradle with a JDK
org.gradle.api.internal.catalog.GeneratedClassCompilationException: No Java compiler found, please ensure you are running Gradle with a JDK
No Java compiler found, please ensure you are running Gradle with a JDK
排查步骤
验证JAVA_HOME配置有效性
打开终端/命令行执行以下命令,确认配置的路径和工具完整性:# Windows系统 echo %JAVA_HOME% java -version javac -version # Linux/macOS系统 echo $JAVA_HOME java -version javac -version重点确认:
JAVA_HOME路径指向JDK22的根目录,且javac命令能正常返回版本(若javac提示不存在,说明实际配置的是JRE而非JDK)。检查Gradle识别的JDK版本
在项目根目录执行Gradle版本命令,查看实际使用的JVM信息:./gradlew -v # Linux/macOS gradlew.bat -v # Windows查看输出里的
JVM:字段,确认是否为JDK22。若显示其他版本或JRE,说明Gradle未读取到你的JAVA_HOME配置。检查IDE的JDK配置(若用IDE构建)
如果你通过IntelliJ或Eclipse构建,需单独配置IDE的项目SDK:- IntelliJ:依次打开
File > Project Structure > Project,确保Project SDK选择JDK22;再到Build, Execution, Deployment > Build Tools > Gradle,确认Gradle JVM设置为JDK22。 - Eclipse:打开
Window > Preferences > Java > Installed JREs,添加并设JDK22为默认;再检查项目Build Path > Libraries是否使用该JDK。
- IntelliJ:依次打开
调整系统PATH变量优先级
确保JDK22的bin目录在PATH中排在最前面,避免其他Java版本干扰:- Windows:将
%JAVA_HOME%\bin移到PATH列表顶部; - Linux/macOS:在
~/.bashrc或~/.zshrc中添加export PATH=$JAVA_HOME/bin:$PATH,生效后重新打开终端。
- Windows:将
验证Gradle与JDK版本兼容性
Gradle 8.6官方支持的JDK版本范围是11-21,JDK22属于新发布版本,可能存在兼容性问题。建议暂时切换到JDK21,再尝试构建。
内容的提问来源于stack exchange,提问作者damian wayne

