321 lines
5.6 KiB
Markdown
321 lines
5.6 KiB
Markdown
# 云端打包缓存问题解决方案
|
||
|
||
## ❌ **问题现象**
|
||
|
||
云端打包失败,错误信息:
|
||
```
|
||
Cannot find a parameter with this name: errorMsg
|
||
at index.kt:119:95, 123:95, 239:75, 261:71
|
||
```
|
||
|
||
## 🔍 **问题原因**
|
||
|
||
**本地代码已正确修改为 `errorMsg`,但云端打包使用了缓存的旧代码(仍然是 `error`)。**
|
||
|
||
---
|
||
|
||
## ✅ **解决方案**
|
||
|
||
### **已执行的修复**
|
||
|
||
1. ✅ **升级插件版本号**
|
||
- 从 `1.0.9` → `1.0.10`
|
||
- 文件:`uni_modules/xwq-speech-to-text/package.json`
|
||
|
||
2. ✅ **添加时间戳注释**
|
||
- 确保云端识别代码已更新
|
||
- 文件:`uni_modules/xwq-speech-to-text/utssdk/app-android/index.uts`
|
||
|
||
---
|
||
|
||
## 🚀 **重新打包步骤**
|
||
|
||
### **步骤1:保存所有文件(重要!)**
|
||
|
||
在 HBuilderX 中:
|
||
```
|
||
Ctrl + Shift + S (保存所有文件)
|
||
```
|
||
|
||
确保所有修改都已保存!
|
||
|
||
---
|
||
|
||
### **步骤2:清理本地缓存**
|
||
|
||
在 HBuilderX 中:
|
||
```
|
||
运行 → 清理项目缓存
|
||
```
|
||
|
||
---
|
||
|
||
### **步骤3:清理云端缓存(关键!)**
|
||
|
||
**方法A:通过菜单(推荐)**
|
||
|
||
```
|
||
右键点击项目 fronted_uniapp
|
||
→ 清理云端打包缓存
|
||
→ 等待清理完成
|
||
```
|
||
|
||
**方法B:通过打包界面**
|
||
|
||
```
|
||
发行 → 原生 App-云打包
|
||
→ 在打包界面找到 "清理缓存" 选项
|
||
→ 点击清理
|
||
```
|
||
|
||
**方法C:手动删除云端缓存(如果上述方法无效)**
|
||
|
||
在打包前勾选:
|
||
```
|
||
☑ 清除云端打包缓存
|
||
```
|
||
|
||
---
|
||
|
||
### **步骤4:重新云端打包**
|
||
|
||
```
|
||
发行 → 原生 App-云打包
|
||
选择:Android
|
||
证书:云端证书或自有证书
|
||
等待打包(约 5-10 分钟)
|
||
```
|
||
|
||
---
|
||
|
||
### **步骤5:查看打包日志**
|
||
|
||
重点确认:
|
||
```
|
||
✅ 使用插件版本:1.0.10(新版本)
|
||
✅ 编译 Kotlin 代码时无错误
|
||
✅ 找到参数 errorMsg(不再报错)
|
||
```
|
||
|
||
---
|
||
|
||
## 📋 **验证修改是否正确**
|
||
|
||
### **检查1:本地文件确认**
|
||
|
||
打开文件查看:
|
||
```
|
||
文件:uni_modules/xwq-speech-to-text/utssdk/app-android/index.uts
|
||
```
|
||
|
||
应该看到:
|
||
```typescript
|
||
// 第 73-74 行
|
||
errorMsg: '识别错误: ' + (e.message ?? '未知错误')
|
||
|
||
// 第 85 行
|
||
errorMsg: '识别超时'
|
||
|
||
// 第 290 行
|
||
errorMsg: '模型未初始化,请重新加载'
|
||
|
||
// 第 322 行
|
||
errorMsg: '语音识别启动失败: ' + (e.message ?? '未知错误')
|
||
```
|
||
|
||
**绝对不应该看到 `error:`!**
|
||
|
||
---
|
||
|
||
### **检查2:版本号确认**
|
||
|
||
打开文件:
|
||
```
|
||
文件:uni_modules/xwq-speech-to-text/package.json
|
||
```
|
||
|
||
应该看到:
|
||
```json
|
||
"version": "1.0.10"
|
||
```
|
||
|
||
---
|
||
|
||
### **检查3:前端代码确认**
|
||
|
||
打开文件:
|
||
```
|
||
文件:pages/speech/speech.vue
|
||
```
|
||
|
||
在 517-522 行应该看到:
|
||
```javascript
|
||
res.data?.errorMsg // 不是 res.data?.error
|
||
```
|
||
|
||
---
|
||
|
||
## ⚠️ **如果仍然失败**
|
||
|
||
### **检查1:是否所有文件都保存了?**
|
||
|
||
```
|
||
Ctrl + Shift + S (保存所有)
|
||
```
|
||
|
||
---
|
||
|
||
### **检查2:是否清理了云端缓存?**
|
||
|
||
打包日志中应该显示:
|
||
```
|
||
云端缓存已清理
|
||
```
|
||
|
||
如果没有,重新执行步骤3。
|
||
|
||
---
|
||
|
||
### **检查3:查看完整错误日志**
|
||
|
||
如果还是报错,点击错误日志链接:
|
||
```
|
||
错误日志: https://app.liuyingyong.cn/build/errorLog/...
|
||
```
|
||
|
||
查看完整的编译错误信息。
|
||
|
||
---
|
||
|
||
### **检查4:手动验证编译后的代码**
|
||
|
||
如果有本地 Android 环境,可以查看:
|
||
```
|
||
unpackage/cache/.uts/...index.kt
|
||
```
|
||
|
||
确认编译后的 Kotlin 代码是否正确。
|
||
|
||
---
|
||
|
||
## 🔍 **其他可能的问题**
|
||
|
||
### **问题1:HBuilderX 版本过旧**
|
||
|
||
**解决:** 更新到最新版本
|
||
```
|
||
帮助 → 检查更新
|
||
```
|
||
|
||
---
|
||
|
||
### **问题2:插件配置问题**
|
||
|
||
检查文件:
|
||
```
|
||
uni_modules/xwq-speech-to-text/utssdk/app-android/config.json
|
||
```
|
||
|
||
确认配置正确。
|
||
|
||
---
|
||
|
||
### **问题3:Gradle 缓存问题**
|
||
|
||
如果云端打包持续失败,可能是 Gradle 缓存问题。
|
||
|
||
**解决:** 联系 DCloud 技术支持清理服务器端缓存。
|
||
|
||
---
|
||
|
||
## 📊 **打包预期时间**
|
||
|
||
- **清理缓存:** 1-2 分钟
|
||
- **云端编译:** 5-10 分钟
|
||
- **总计:** 约 10-15 分钟
|
||
|
||
**注意:** 如果使用了原生插件且需要下载三方库,可能需要 **3-30 分钟**。
|
||
|
||
---
|
||
|
||
## ✅ **成功标志**
|
||
|
||
打包成功后,应该看到:
|
||
```
|
||
[HBuilder] 打包成功
|
||
[HBuilder] 下载地址: https://...xxx.apk
|
||
```
|
||
|
||
下载并安装 APK,测试语音识别功能正常。
|
||
|
||
---
|
||
|
||
## 🎯 **快速检查清单**
|
||
|
||
- [ ] 本地文件已修改(errorMsg,不是 error)
|
||
- [ ] 插件版本已升级(1.0.10)
|
||
- [ ] 所有文件已保存(Ctrl+Shift+S)
|
||
- [ ] 本地缓存已清理
|
||
- [ ] **云端缓存已清理(关键!)**
|
||
- [ ] 重新云端打包
|
||
- [ ] 等待 10-15 分钟
|
||
- [ ] 查看打包日志确认成功
|
||
- [ ] 下载安装 APK
|
||
- [ ] 测试功能正常
|
||
|
||
---
|
||
|
||
## 💡 **预防措施**
|
||
|
||
### **以后修改插件代码后:**
|
||
|
||
1. ✅ 升级插件版本号(每次修改都升级)
|
||
2. ✅ 保存所有文件
|
||
3. ✅ 清理本地缓存
|
||
4. ✅ **清理云端缓存**
|
||
5. ✅ 重新打包
|
||
|
||
**不要跳过清理云端缓存这一步!**
|
||
|
||
---
|
||
|
||
## 📞 **获取帮助**
|
||
|
||
如果按照上述步骤仍然失败:
|
||
|
||
1. **查看完整错误日志**
|
||
```
|
||
点击打包失败后的错误日志链接
|
||
```
|
||
|
||
2. **联系 DCloud 技术支持**
|
||
```
|
||
DCloud 论坛:https://ask.dcloud.net.cn/
|
||
官方 QQ 群:见官网
|
||
```
|
||
|
||
3. **检查插件是否有更新**
|
||
```
|
||
插件市场:https://ext.dcloud.net.cn/
|
||
搜索:xwq-speech-to-text
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ **总结**
|
||
|
||
### **核心问题**
|
||
云端打包使用了缓存的旧代码。
|
||
|
||
### **关键操作**
|
||
**清理云端缓存** + 升级版本号
|
||
|
||
### **预期结果**
|
||
打包成功,语音识别功能正常。
|
||
|
||
---
|
||
|
||
**现在请按照步骤重新打包,应该能成功!** 🚀
|
||
|
||
**记住:每次修改插件代码后,一定要清理云端缓存!** ⚠️
|