330 lines
6.6 KiB
Markdown
330 lines
6.6 KiB
Markdown
|
|
# 🔧 重新打包指南
|
|||
|
|
|
|||
|
|
## ❓ 为什么之前的 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.js:https://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. ✅ 享受修复后的应用!
|