# Android 项目编译 Debug 和 Release 版本 APK 的方法

## 项目信息
- **项目名称**: com.xunpaisoft.social
- **项目路径**: D:\zhini\android-im
- **JDK 要求**: Java 11 或更高版本
- **推荐 JDK**: Android Studio 内置 JDK 21

## 环境准备

### 1. 检查 Java 版本
```bash
java -version
```
**注意**: 如果系统只有 Java 8，需要使用 Android Studio 的 JDK 21

### 2. 设置环境变量
```powershell
# 设置 Android Studio JDK 路径
$env:JAVA_HOME="C:\Program Files\Android\Android Studio1\jbr"

# 设置 Android SDK 路径
$env:ANDROID_HOME="C:\Users\$env:USERNAME\AppData\Local\Android\Sdk"
```

## 编译方法

### 方法一：使用 Gradle Wrapper（推荐）

#### 1. Debug 版本编译
```bash
# 设置环境变量并编译 Debug 版本
$env:JAVA_HOME="C:\Program Files\Android\Android Studio1\jbr"; $env:ANDROID_HOME="C:\Users\$env:USERNAME\AppData\Local\Android\Sdk"; .\gradlew.bat assembleDebug
```

**编译结果**:
- ✅ 编译状态: BUILD SUCCESSFUL
- ⏱️ 编译时间: 约 34 秒
- 📁 APK 位置: `app\build\outputs\apk\debug\app-debug.apk`

#### 2. Release 版本编译
```bash
# 设置环境变量并编译 Release 版本
$env:JAVA_HOME="C:\Program Files\Android\Android Studio1\jbr"; $env:ANDROID_HOME="C:\Users\$env:USERNAME\AppData\Local\Android\Sdk"; .\gradlew.bat assembleRelease
```

**编译结果**:
- ✅ 编译状态: BUILD SUCCESSFUL
- ⏱️ 编译时间: 约 3分48秒
- 📁 APK 位置: `app\build\outputs\apk\release\app-release.apk`

### 方法二：使用 Android Studio（最简单）

1. **打开 Android Studio**
2. **导入项目**: 选择 `D:\zhini\android-im` 目录
3. **等待 Gradle 同步完成**
4. **编译项目**:
   - **Debug 版本**: `Build` → `Build Bundle(s) / APK(s)` → `Build APK(s)`
   - **Release 版本**: `Build` → `Generate Signed Bundle / APK` → `APK`

## 安装 APK 到设备

### 安装 Debug 版本
```bash
adb install -r app\build\outputs\apk\debug\app-debug.apk
```

### 安装 Release 版本
```bash
adb install -r app\build\outputs\apk\release\app-release.apk
```

## 版本对比

| 特性 | Debug 版本 | Release 版本 |
|------|------------|--------------|
| **编译时间** | 约 34 秒 | 约 3分48秒 |
| **APK 大小** | 较大 | 较小（优化后） |
| **代码混淆** | 否 | 是（ProGuard） |
| **调试信息** | 包含 | 移除 |
| **性能** | 较慢 | 较快 |
| **用途** | 开发测试 | 正式发布 |

## 常见问题解决

### 问题1: Java 版本不兼容
**错误信息**: `Dependency requires at least JVM runtime version 11. This build uses a Java 8 JVM.`

**解决方案**:
```bash
# 停止现有 Gradle daemon
.\gradlew.bat --stop

# 使用 Android Studio JDK 编译
$env:JAVA_HOME="C:\Program Files\Android\Android Studio1\jbr"; .\gradlew.bat assembleDebug
```

### 问题2: Gradle Wrapper 不存在
**解决方案**: 项目已包含 `gradlew.bat` 文件，如果缺失可以重新创建。

### 问题3: 权限重复警告
**现象**: 编译时出现权限重复警告
**影响**: 不影响编译，但建议清理重复权限声明

## 编译命令总结

### 一键编译脚本
```powershell
# Debug 版本一键编译
$env:JAVA_HOME="C:\Program Files\Android\Android Studio1\jbr"; $env:ANDROID_HOME="C:\Users\$env:USERNAME\AppData\Local\Android\Sdk"; .\gradlew.bat assembleDebug

# Release 版本一键编译
$env:JAVA_HOME="C:\Program Files\Android\Android Studio1\jbr"; $env:ANDROID_HOME="C:\Users\$env:USERNAME\AppData\Local\Android\Sdk"; .\gradlew.bat assembleRelease
```

### 清理和重新编译
```bash
# 清理项目
.\gradlew.bat clean

# 重新编译 Debug 版本
.\gradlew.bat assembleDebug

# 重新编译 Release 版本
.\gradlew.bat assembleRelease
```

## 注意事项

1. **JDK 版本**: 必须使用 Java 11 或更高版本
2. **环境变量**: 每次编译前需要设置正确的 JAVA_HOME
3. **签名配置**: Release 版本需要配置签名文件
4. **混淆规则**: Release 版本会应用 ProGuard 混淆规则
5. **资源优化**: Release 版本会进行资源压缩和优化

## 文件位置

- **Debug APK**: `app\build\outputs\apk\debug\app-debug.apk`
- **Release APK**: `app\build\outputs\apk\release\app-release.apk`
- **Gradle Wrapper**: `gradlew.bat`
- **构建配置**: `app\build.gradle`

## 成功标志

编译成功后会显示：
```
BUILD SUCCESSFUL in [时间]
[数量] actionable tasks: [执行数量] executed, [跳过数量] up-to-date
```

---

**最后更新**: 2025年10月29日
**适用版本**: Android Gradle Plugin 8.7.3
**JDK 版本**: Android Studio JDK 21
