3.6 KiB
3.6 KiB
【重要】两种打包方式的区别
问题说明
HBuilderX 有两个看起来相似但完全不同的打包入口,很容易混淆!
❌ 方式一:本地制作自定义基座(会失败)
入口位置:
运行 → 运行到手机或模拟器 → 制作自定义调试基座(P)
特点:
- 📍 在 "运行" 菜单下
- 💻 使用本地编译
- ⚙️ 需要配置本地 Android SDK
- ❌ 对于有第三方依赖的 UTS 插件会失败
错误信息:
找不到名称"vosk"
uts插件[xwq-speech-to-text]编译失败
uni_module [xwq-speech-to-text] (Android) 存在三方依赖或资源引用
为什么会失败?
因为 Vosk 是第三方 Maven 依赖,本地编译环境找不到这个库。
✅ 方式二:云端打包自定义基座(会成功)
入口位置:
发行 → App–Android/iOS–云打包(P)
→ 勾选 "打包为自定义调试基座"
特点:
- 📍 在 "发行" 菜单下
- ☁️ 使用云端编译
- 🚀 不需要本地 Android SDK
- ✅ 自动下载和编译所有第三方依赖
成功标志:
[Speech] ========== 开始初始化语音模型 ==========
[Speech] 模型加载成功
为什么会成功?
云端服务器会自动从 Maven 仓库下载 Vosk 库并编译。
详细对比表
| 对比项 | 本地制作基座 | 云端打包基座 |
|---|---|---|
| 菜单位置 | 运行 → 运行到手机或模拟器 | 发行 → 云打包 |
| 编译位置 | 本地电脑 | DCloud 云端服务器 |
| 需要本地SDK | ✅ 必须配置 | ❌ 不需要 |
| 处理第三方依赖 | ❌ 需要手动配置 | ✅ 自动下载 |
| Vosk 插件 | ❌ 编译失败 | ✅ 编译成功 |
| 打包速度 | 快(如果环境配好) | 5-10 分钟 |
| 适用场景 | 纯 UTS 插件,无第三方依赖 | 有第三方依赖的插件 ⭐ |
| 推荐程度 | ⭐ | ⭐⭐⭐⭐⭐ |
正确的操作步骤
第一步:打开云打包
发行 → App–Android/iOS–云打包(P)
注意: 是 "发行" 菜单,不是 "运行" 菜单!
第二步:配置打包参数
- ✅ 勾选
Android - ⭐ 勾选 "打包为自定义调试基座"
- 证书:选择
DCloud 公共测试证书
第三步:提交打包
- 点击 "打包" 按钮
- 等待 5-10 分钟
- 下载生成的 APK
第四步:安装基座
- 将 APK 安装到 Android 手机
第五步:配置 HBuilderX
运行 → 运行到手机或模拟器 → 运行配置
→ 选择 "自定义调试基座"
第六步:运行项目
- 现在运行项目不会再本地编译
- 直接使用基座中已编译好的插件
- 语音识别功能正常工作 ✅
常见误区
❌ 误区 1:以为两个入口是一样的
真相: 完全不同!一个本地编译,一个云端编译。
❌ 误区 2:以为配置了 Android SDK 就能用本地编译
真相: 即使配置了 SDK,第三方依赖的下载和配置也很复杂,容易出错。
❌ 误区 3:以为云打包只能打正式包
真相: 云打包可以打调试基座,只需勾选 "打包为自定义调试基座"。
记忆技巧
🎯 简单记忆法:
有第三方依赖的 UTS 插件 = 必须云端打包
Vosk 插件(第三方依赖)
↓
必须使用:发行 → 云打包 → 勾选"打包为自定义调试基座"
↓
成功!✅
总结
对于 xwq-speech-to-text 这个依赖 Vosk 的插件:
- ❌ 不要用:运行 → 制作自定义调试基座
- ✅ 必须用:发行 → 云打包 → 勾选"打包为自定义调试基座"
这是唯一能成功的方法!