# 【解决】关闭 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 本地编译选项。