guoyu/log/备份/md/【解决】关闭UTS本地编译.md

147 lines
3.3 KiB
Markdown
Raw Normal View History

2025-12-06 20:11:36 +08:00
# 【解决】关闭 UTS 本地编译
## 问题现象
虽然云端打包自定义基座成功了,但运行时还是报错:
```
找不到名称"vosk"
uts插件[xwq-speech-to-text]编译失败
```
## 问题原因
HBuilderX 在运行时,默认会尝试**本地编译 UTS 插件**,即使你已经有了云端编译好的基座。
## 解决方案
### 方法一:修改运行配置(推荐)
1. **打开设置**
```
工具 → 设置 → 运行配置
```
2. **找到 Android 配置**
- 找到 "Android" 或 "uni-app运行配置" 部分
3. **关闭 UTS 本地编译**
- 查找类似 "编译 UTS 插件" 或 "本地编译原生插件" 的选项
- **取消勾选** 或设置为 "使用云端编译"
4. **保存配置**
### 方法二:使用标准运行模式(临时方案)
如果找不到上述配置,可以尝试:
1. **确认已安装自定义基座**
- 基座 APK 已安装到手机
- 文件位置:`fronted_uniapp/unpackage/debug/android_debug.apk`
2. **配置使用自定义基座**
```
运行 → 运行到手机或模拟器 → 运行基座选择 → 自定义调试基座
```
3. **重启 HBuilderX**
- 完全关闭 HBuilderX
- 重新打开项目
- 再次运行
### 方法三:修改项目配置文件
在项目根目录创建或修改 `.hbuilderx/launch.json`
```json
{
"version": "0.0",
"configurations": [
{
"app-plus": {
"compileMode": "custom",
"utsCompile": false
}
}
]
}
```
这会告诉 HBuilderX 不要本地编译 UTS 插件。
### 方法四:使用真机运行(跳过编译)
1. **确保自定义基座已安装到手机**
2. **使用真机运行模式**
```
运行 → 运行到手机或模拟器 → 真机运行
```
3. **选择已安装的自定义基座应用**
## 验证配置是否生效
运行项目后,查看日志:
### ✅ 配置成功的标志:
```
项目 fronted_uniapp 编译成功
正在同步手机端程序文件...
应用【fronted_uniapp】已启动
```
**不应该出现:**
```
❌ uni_module [xwq-speech-to-text] (Android) 存在三方依赖或资源引用
❌ uts插件[xwq-speech-to-text]编译失败
❌ 找不到名称"vosk"
```
### ✅ 运行成功的标志:
```
[Speech] ========== 开始初始化语音模型 ==========
[Speech] 模型加载成功
```
## 关键理解
```
云端打包基座 ✅ (已完成)
基座中包含编译好的 Vosk 插件 ✅
但是 HBuilderX 运行时还在尝试本地编译 ❌
需要配置:不要本地编译,直接用基座中的 ✅
```
## 如果还是不行
尝试以下步骤:
1. **完全卸载手机上的应用**
2. **重新安装自定义基座 APK**
3. **重启 HBuilderX**
4. **清除项目缓存**
```
项目右键 → 清除缓存
```
5. **重新运行项目**
## 最后的办法:直接运行基座
如果上述方法都不行,可以:
1. **直接在手机上打开自定义基座应用**
2. **在 HBuilderX 中选择 "同步到手机"**
```
运行 → 运行到手机或模拟器 → 同步到手机
```
3. **这样会跳过编译步骤,直接同步代码**
## 总结
核心问题HBuilderX 在运行时不应该本地编译 UTS 插件,应该直接使用基座中已编译好的版本。
需要在设置中关闭 UTS 本地编译选项。