升级Java11指南.md 5.2 KB

升级到 Java 11 完整指南

⚠️ 当前问题

你的 AGP 版本是 8.7.3,但使用的是 Java 8,导致编译失败:

Dependency requires at least JVM runtime version 11. This build uses a Java 8 JVM.

✅ 解决方案:升级到 Java 11

步骤 1:下载 Java 11

推荐:Eclipse Temurin (OpenJDK)

  1. 访问:https://adoptium.net/temurin/releases/?version=11
  2. 选择:
    • Version: 11 (LTS)
    • Operating System: Windows
    • Architecture: x64
    • Package Type: JDK
  3. 下载 .msi 安装包

备选:Oracle JDK 11

步骤 2:安装 Java 11

  1. 运行下载的 .msi 安装包
  2. 安装选项:
    • ✅ 勾选 "Set JAVA_HOME variable"
    • ✅ 勾选 "Add to PATH"
    • ✅ 勾选 "JavaSoft (Oracle) registry keys"
  3. 安装路径(默认):

    C:\Program Files\Eclipse Adoptium\jdk-11.0.xx-hotspot
    
  4. 点击 "Install" 完成安装

步骤 3:配置环境变量(如果安装程序没有自动配置)

方法 A:通过图形界面

  1. 右键 "此电脑" → "属性"
  2. 点击 "高级系统设置"
  3. 点击 "环境变量"
  4. 在 "系统变量" 中:

添加/修改 JAVA_HOME

  • 变量名:JAVA_HOME
  • 变量值:C:\Program Files\Eclipse Adoptium\jdk-11.0.xx-hotspot

修改 Path

  • 找到 Path 变量,点击 "编辑"
  • 添加新条目:%JAVA_HOME%\bin
  • 将这个条目移到最上面(优先级最高)
  1. 点击 "确定" 保存所有更改

方法 B:通过 PowerShell(管理员权限)

# 设置 JAVA_HOME
[System.Environment]::SetEnvironmentVariable('JAVA_HOME', 'C:\Program Files\Eclipse Adoptium\jdk-11.0.xx-hotspot', [System.EnvironmentVariableTarget]::Machine)

# 添加到 PATH
$path = [System.Environment]::GetEnvironmentVariable('Path', [System.EnvironmentVariableTarget]::Machine)
$newPath = '%JAVA_HOME%\bin;' + $path
[System.Environment]::SetEnvironmentVariable('Path', $newPath, [System.EnvironmentVariableTarget]::Machine)

步骤 4:验证安装

重要:关闭所有终端窗口,重新打开一个新的 PowerShell 窗口

# 检查 Java 版本
java -version

# 应该显示类似:
# openjdk version "11.0.21" 2023-10-17
# OpenJDK Runtime Environment Temurin-11.0.21+9 (build 11.0.21+9)
# OpenJDK 64-Bit Server VM Temurin-11.0.21+9 (build 11.0.21+9, mixed mode)

# 检查 javac 版本
javac -version

# 应该显示:
# javac 11.0.21

# 检查 JAVA_HOME
echo $env:JAVA_HOME

# 应该显示:
# C:\Program Files\Eclipse Adoptium\jdk-11.0.xx-hotspot

步骤 5:重新编译项目

# 进入项目目录
cd E:\TPlat\HeartRateProject\bBeng-HeartRate-4.66-pad

# 清理
.\gradlew clean

# 编译
.\gradlew assembleApp_bbengDebug

🔧 常见问题

Q1: 安装后仍显示 Java 8

原因:环境变量没有生效或 PATH 中 Java 8 的优先级更高

解决

  1. 关闭所有终端窗口
  2. 重新打开 PowerShell
  3. 检查 java -version
  4. 如果还是 Java 8,检查 PATH 中是否有多个 Java 路径,将 Java 11 移到最前面

Q2: 找不到 JAVA_HOME

解决

# 手动设置(临时,仅当前会话)
$env:JAVA_HOME = "C:\Program Files\Eclipse Adoptium\jdk-11.0.xx-hotspot"
$env:PATH = "$env:JAVA_HOME\bin;$env:PATH"

Q3: Gradle 仍然使用 Java 8

原因:Gradle 可能缓存了旧的 Java 版本

解决

# 停止所有 Gradle Daemon
.\gradlew --stop

# 清理 Gradle 缓存
Remove-Item -Recurse -Force $env:USERPROFILE\.gradle\caches

# 重新编译
.\gradlew clean assembleApp_bbengDebug

Q4: 在 Android Studio 中使用 Java 11

  1. 打开 Android Studio
  2. File → Settings → Build, Execution, Deployment → Build Tools → Gradle
  3. Gradle JDK:选择 "11" 或 "Embedded JDK (11.x.x)"
  4. 点击 "Apply" 和 "OK"

📋 验证清单

编译前请确认:

  • Java 11 已安装
  • java -version 显示 11.x.x
  • javac -version 显示 11.x.x
  • echo $env:JAVA_HOME 指向 Java 11 目录
  • 已关闭并重新打开终端
  • 已执行 .\gradlew --stop
  • app/build.gradle 中有 namespace 'com.YuyeTech.HeartRate'
  • AndroidManifest.xml 中有 package="com.YuyeTech.HeartRate"

🚀 快速命令

安装 Java 11 后,执行:

# 1. 验证 Java 版本
java -version

# 2. 停止 Gradle Daemon
.\gradlew --stop

# 3. 清理项目
.\gradlew clean

# 4. 编译
.\gradlew assembleApp_bbengDebug

# 5. 如果成功,查看 APK
ls app\build\outputs\apk\app_bbeng\debug\

✨ 成功标志

当你看到以下输出时,说明编译成功:

BUILD SUCCESSFUL in 2m 30s
198 actionable tasks: 198 executed

APK 位置:

app\build\outputs\apk\app_bbeng\debug\android_debug.apk

💡 为什么需要 Java 11?

特性 Java 8 Java 11
AGP 支持 ≤ 4.2.2 7.0+
Android API 支持 ≤ 30 最新
编译速度
新特性
官方支持 已停止 LTS 支持

创建时间:2026-01-22
适用场景:AGP 8.7.3 需要 Java 11+