Android SDK 无法识别 JDK:包含 Java 示例的分步解决方案

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

「Android SDK installation doesn't find JDK」——熟悉的痛点?

\n

您正尝试配置 Android 开发环境,启动 SDK 安装程序,却毫无反应?或者更糟的是,出现红色错误:「Android SDK installation doesn't find JDK」。如果您曾经搜索过这个短语,就会知道:在 Stack Overflow 上,这个问题有数千次浏览和几十个回答。

\n

为什么会这样?您似乎已经下载并安装了 JDK,但系统却固执地无法识别它。在本文中,我们不仅会分析原因,还会通过真实的 Java 代码示例,向您展示如何正确配置环境,让 Android SDK 最终能与 JDK 协同工作。

\n

我们是 PythonLib 团队,虽然我们的名字里有 Python,但我们深知 Java 是 Android 开发的基础。今天的内容将对每个希望一劳永逸解决这个头疼问题的人有所帮助。

\n\n

为什么 Android SDK 无法识别 JDK?三个主要原因

\n

在深入代码之前,让我们先认清问题所在。「Android SDK installation doesn't find JDK」错误通常由以下三个原因引起:

\n
    \n
  • JDK 路径指定错误——安装程序根本不知道去哪里找 Java。
  • \n
  • 缺少 JAVA_HOME 环境变量——Android SDK 依赖此变量。
  • \n
  • 版本冲突——您安装了 32 位 JDK,而系统是 64 位的,反之亦然。
  • \n
\n

最令人沮丧的是,即使您在安装程序中手动指定了路径,错误仍可能再次出现。为什么?因为 Android SDK 不仅检查显式路径,还会检查环境变量。让我们通过示例逐一分析每种情况。

\n\n

步骤 1:检查 JDK 是否已安装

\n

在进行任何配置之前,请先确认 JDK 确实存在。打开终端(命令行)并执行一个简单的 Java 命令:

\n
java -version
\n

如果您看到类似如下的信息:

\n
java version "17.0.2" 2022-01-18 LTS\nJava(TM) SE Runtime Environment (build 17.0.2+8-LTS-86)\nJava HotSpot(TM) 64-Bit Server VM (build 17.0.2+8-LTS-86, mixed mode)
\n

一切正常——JDK 已安装。如果命令未找到,则问题更严重。您需要从 Oracle 官方网站下载 JDK 或使用 OpenJDK。对于 Android 开发,建议使用版本 11 或 17。

\n\n

代码示例:从内部检查 Java 版本

\n

如果您正在编写一个检查环境的 Java 脚本,可以使用内置的 System 类:

\n
public class CheckJavaVersion {\n    public static void main(String[] args) {\n        String version = System.getProperty("java.version");\n        String home = System.getProperty("java.home");\n        System.out.println("Java version: " + version);\n        System.out.println("Java home: " + home);\n    }\n}
\n

这段代码将输出已安装 Java 的版本和路径。如果 java.home 指向 jre 文件夹而不是 jdk 文件夹,这可能是错误的原因——Android SDK 需要的是 JDK,而不是 JRE。

\n\n

步骤 2:配置 JAVA_HOME 变量

\n

这是 Stack Overflow 上最常见的建议,而且确实有效。JAVA_HOME 变量必须指向 JDK 的根文件夹,而不是 bin 或 jre 文件夹。

\n

如何操作?

\n
    \n
  • Windows: 控制面板 → 系统 → 高级系统设置 → 环境变量。创建一个新的系统变量 JAVA_HOME,值例如:C:\\Program Files\\Java\\jdk-17。
  • \n
  • macOS/Linux: 编辑 ~/.bashrc 或 ~/.zshrc 文件,添加一行:export JAVA_HOME=/usr/lib/jvm/jdk-17。
  • \n
\n

之后,重启终端并检查:

\n
echo %JAVA_HOME%   # 适用于 Windows\necho $JAVA_HOME    # 适用于 macOS/Linux
\n\n

博客

书籍推荐