这个问题通常发生在使用 Android Studio Bumblebee | 2021.1.1 运行 Gradle 时。它会显示类似以下内容的错误消息:
Error: Gradle: exec failed
Error: Program "cmd" not found in PATH
Error: Process 'command 'cmd'' finished with non-zero exit value 1
这个问题的解决方法是在 Gradle 配置文件中添加 JDK 的路径。可以按照以下步骤进行操作:
android {
compileSdkVersion ...
android {
compileSdkVersion ...
}
// 添加以下块
task printJdkPath {
doLast {
println System.getenv("JAVA_HOME")
}
}
printJdkPath.doLast {
exec {
commandLine 'cmd', '/c', 'java -version'
}
}
// 修改 Gradle 默认的 JDK 目录
def jdkDir = new File(System.getenv("JAVA_HOME"))
if (!jdkDir.exists()) {
try {
String output = new ByteArrayOutputStream()
exec {
commandLine 'where', 'javac'
standardOutput = output
}
jdkDir = new File(output.toString().trim().replace("\\bin\\javac", ""));
} catch (Exception ex) {
ex.printStackTrace()
}
}
if (!jdkDir.exists()) {
throw new GradleException("无法找到 JDK 目录")
}
println "Using JDK: $jdkDir"
System.setProperty("org.gradle.java.home", jdkDir.absolutePath)
现在 Gradle 将会使用指定的 JDK 目录运行,这将解决“error=2, No such file or directory”问题。