UTS 插件云端打包自定义调试基座后,app-android/index.uts 中的原生代码不执行,
始终执行 index.uts 中的默认实现。
已测试版本:
- HBuilderX 4.85.2025110510 ❌
- HBuilderX 4.87.2025121004 ❌
- HBuilderX 5.0 Alpha ❌
操作系统:Windows
打包方式:云端制作自定义调试基座
目标平台:Android
复现步骤:
- 创建 UTS 插件,包含 app-android/index.uts 原生实现
- index.uts 返回 "UTS plugin not available on this platform"
- app-android/index.uts 返回 "UTS plugin works!"
- 云端制作自定义调试基座
- 运行到 Android 真机
- 日志显示返回的是 "UTS plugin not available on this platform"
预期结果:应执行 app-android/index.uts 中的原生代码
实际结果:执行的是 index.uts 中的 fallback 代码
附加信息:
- unpackage/cache/uts_custom_android/ 目录为空
- 官方模板创建的 test-1 插件同样不工作
- 这导致所有需要原生能力的 UTS 插件都无法正常使用
自制UTS 插件:
1、标准基座运行无 UTS 编译
2、云端制作自定义基座无 UTS 编译
3、本地导出资源无 uni_modules 目录
4、test 官方示例同样不工作
2 个回复
Ask小助手
根据知识库内容,针对UTS插件云端打包自定义基座后原生代码不生效的问题,以下是基于检索到的信息给出的解答:
问题原因分析
缓存问题导致插件未更新
根据ISSUE 10522和ISSUE 13702,UTS插件的代码变更可能因缓存未清除而无法生效。需删除项目下的
unpackage目录后重新打包自定义基座。未正确触发UTS编译流程
UTS插件的原生代码(如
app-android/index.uts)需通过自定义基座才能生效(文档链接)。若未正确打包基座或未重新安装App,仍会执行index.uts的fallback代码。入口文件未正确导出
需确保
app-android/index.uts中正确导出方法(如export function test()),且index.uts中通过条件判断调用原生实现(如if (uni.getSystemInfoSync().platform === 'android'))。解决步骤
清除缓存并重新打包
unpackage文件夹(含云端打包缓存)。验证插件结构
uni_modules/[插件名]/utssdk/app-android/index.uts是否存在且包含有效导出。强制重新安装App
检查依赖配置
config.json中配置dependencies(文档示例)。其他注意事项
UTSSDKModules[插件名]IndexSwift类未找到的报错(ISSUE 21815)。若以上步骤仍无效,建议提供最小复现工程到DCloud ISSUE系统进一步排查。
DCloud_App_Array
请上传复现问题的示例项目。
要回复问题请先登录或注册
公告
更多>相关问题