# 升级到 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 - 访问:https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html - 下载 Windows x64 Installer ### 步骤 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` - 将这个条目移到最上面(优先级最高) 5. 点击 "确定" 保存所有更改 #### 方法 B:通过 PowerShell(管理员权限) ```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 窗口 ```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:重新编译项目 ```powershell # 进入项目目录 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 **解决**: ```powershell # 手动设置(临时,仅当前会话) $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 版本 **解决**: ```powershell # 停止所有 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 后,执行: ```powershell # 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+