xinli/重新打包指南.md

330 lines
6.6 KiB
Markdown
Raw Normal View History

2025-12-02 15:12:55 +08:00
# 🔧 重新打包指南
## ❓ 为什么之前的 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. ✅ 享受修复后的应用!