xinli/重新打包指南.md
2025-12-02 15:12:55 +08:00

330 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🔧 重新打包指南
## ❓ 为什么之前的 APK 不能正常使用?
可能的原因:
1. **前端资源未更新** - TTS 功能修复后需要重新构建前端
2. **构建缓存问题** - 旧的缓存导致新代码未生效
3. **WebView 资源问题** - App 中的 Web 资源未同步
4. **签名问题** - 签名不一致导致安装失败
## ✅ 解决方案:完整重新打包
我已经为你创建了两个打包脚本:
### 方案 1完整打包流程推荐
**脚本位置**`完整打包流程.bat`
**包含内容**:前端构建 + Android 打包
```bash
# 在项目根目录执行
.\完整打包流程.bat
```
**优点**
- ✅ 自动构建最新前端代码(包含 TTS 修复)
- ✅ 清理所有缓存
- ✅ 完整的错误检查
- ✅ 一键完成所有步骤
**执行步骤**
1. 打开 PowerShell 或 CMD
2. 进入项目目录:`cd c:\Users\Administrator\Desktop\Project\xinli`
3. 执行脚本:`.\完整打包流程.bat`
4. 等待完成(约 5-10 分钟)
---
### 方案 2只打包 Android App
**脚本位置**`xinli-App\完整重新打包.bat`
**适用场景**:前端已经构建好,只需要重新打包 App
```bash
# 在 Android 项目目录执行
cd xinli-App
.\完整重新打包.bat
```
---
## 📋 打包流程详解
### 阶段 1: 前端构建(如果使用完整打包)
```bash
cd xinli-ui
npm run build:prod
```
**作用**
- 编译 Vue.js 前端代码
- 应用 TTS 朗读功能的修复
- 生成优化后的静态文件到 `dist` 目录
**预期输出**
```
Building for production...
✓ built in XXs
```
---
### 阶段 2: Android 打包
#### 步骤 1: 清理缓存
```bash
cd xinli-App
# 删除旧的构建文件
rd /s /q app\build
rd /s /q build
rd /s /q .gradle
# Gradle clean
gradlew.bat clean
```
#### 步骤 2: 检查环境
```bash
# 检查 JAVA_HOME
echo %JAVA_HOME%
# 检查 Java 版本(需要 JDK 8
java -version
```
**要求**
- ✅ JAVA_HOME 已设置
- ✅ Java 版本为 1.8.x
- ✅ Android SDK 已安装
#### 步骤 3: 构建 APK
```bash
gradlew.bat assembleRelease
```
**预期输出**
```
BUILD SUCCESSFUL in XXs
```
**APK 位置**
```
xinli-App\app\build\outputs\apk\release\app-release.apk
```
---
## 🚨 常见问题排查
### 问题 1: "JAVA_HOME 未设置"
**解决方法**
```bash
# 设置 JAVA_HOME替换为你的 JDK 路径)
set JAVA_HOME=D:\2_part\JAVA\JDK
# 或在系统环境变量中永久设置
```
### 问题 2: "Node.js 未安装"
**解决方法**
1. 下载 Node.jshttps://nodejs.org/
2. 安装后重启命令行
3. 验证:`node -v`
### 问题 3: "npm run build:prod 失败"
**解决方法**
```bash
cd xinli-ui
# 重新安装依赖
npm install
# 再次构建
npm run build:prod
```
### 问题 4: "Gradle 构建失败"
**常见原因**
1. **网络问题** - 无法下载依赖
- 解决:检查网络,重试
2. **SDK 版本问题** - Build Tools 未安装
- 解决:打开 Android Studio → SDK Manager → 安装 Build Tools 30.0.3
3. **内存不足**
- 解决:修改 `gradle.properties` 中的内存设置
### 问题 5: APK 安装失败
**原因**:旧版本 App 未卸载
**解决方法**
```bash
# 方法 1: 手动卸载
设置 → 应用管理 → 心理测评 → 卸载
# 方法 2: 使用 adb如果手机已连接电脑
adb uninstall com.xinli.app
adb install app-release.apk
```
---
## 📱 安装和测试步骤
### 1. 卸载旧版本(重要!)
```
⚠️ 必须先卸载旧版本,否则可能安装失败或功能异常
```
**操作步骤**
- 手机 → 设置 → 应用管理
- 找到"心理测评"或"xinli"
- 点击卸载
### 2. 安装新 APK
**方法 1: 通过 USB 传输**
1. 将 APK 复制到手机
2. 在手机上点击 APK 文件
3. 允许安装未知来源应用
4. 点击安装
**方法 2: 通过 adb 安装**
```bash
# 手机连接电脑,开启 USB 调试
adb devices
adb install -r app-release.apk
```
### 3. 测试功能
#### 测试 1: TTS 朗读功能
1. 登录系统
2. 进入量表/问卷答题页面
3. **预期**
- ✅ 朗读按钮不再是灰色
- ✅ 点击"朗读全部"能听到声音
- ✅ 点击"朗读题干"能听到声音
- ✅ 点击选项朗读按钮能听到声音
#### 测试 2: 权限过滤(如果已修复后端)
1. 使用普通用户登录
2. 查看问卷列表
3. **预期**
- ✅ 只能看到公开问卷和已授权的问卷
- ❌ 看不到未授权的问卷
#### 测试 3: 基本功能
1. 登录功能
2. 答题功能
3. 提交测评
4. 查看报告
---
## 🎯 快速打包步骤(简化版)
### 如果你只想快速打包 Android App
```bash
# 1. 进入 Android 项目目录
cd c:\Users\Administrator\Desktop\Project\xinli\xinli-App
# 2. 清理
rd /s /q app\build
rd /s /q build
# 3. 打包
gradlew.bat clean assembleRelease
# 4. 查找 APK
dir /s app-release.apk
```
APK 位置:`app\build\outputs\apk\release\app-release.apk`
---
## 📊 打包时间预估
| 步骤 | 预计时间 |
|------|---------|
| 前端构建 | 2-3 分钟 |
| Gradle clean | 10-30 秒 |
| APK 构建 | 3-5 分钟 |
| **总计** | **5-10 分钟** |
---
## ✅ 打包成功标志
看到以下信息表示打包成功:
```
========================================
✓✓✓ 完整打包流程完成!✓✓✓
========================================
APK 文件位置:
c:\Users\Administrator\Desktop\Project\xinli\xinli-App\app\build\outputs\apk\release\app-release.apk
文件大小:
XXXX MB
```
---
## 🔍 验证 APK 是否包含最新代码
### 检查方法 1: 查看构建时间
```bash
# 查看 APK 文件的修改时间
dir app\build\outputs\apk\release\app-release.apk
```
应该是刚刚构建的时间(几分钟前)
### 检查方法 2: 安装后测试
1. 安装 APK
2. 打开 App
3. 打开浏览器控制台(如果是调试版)
4. 进入答题页面
5. 查看控制台日志:
- 应该看到:`✅ 使用Android原生TTS`
- 或:`✅ Android TTS 已就绪(延迟检测)`
---
## 📝 注意事项
### 1. 前端资源同步
- ⚠️ 如果修改了前端代码,**必须**重新构建前端
- ⚠️ App 中的 WebView 加载的是服务器上的网页
- ⚠️ 打包 APK 后,还需要将前端 `dist` 目录部署到服务器
### 2. 签名说明
- 当前使用 debug 签名(测试用)
- 正式发布需要生成正式签名
- 签名不一致会导致安装失败
### 3. 版本号
- 当前版本:`versionCode 1`, `versionName "1.0"`
- 如需更新版本号,修改 `app/build.gradle`
---
## 🎉 完成!
打包完成后:
1. ✅ 找到 APK 文件
2. ✅ 卸载旧版本
3. ✅ 安装新 APK
4. ✅ 测试功能
5. ✅ 享受修复后的应用!