首页 APP开发 正文内容

uni-app 项目使用了 UTS 插件,离线打包时报错:当前运行的基座不包含原生插作[UTS-Proxy],请在manifest 中配置该插件,重新制作包括该原生插件的自定义运行基座

2024年01月12日 , , 576

uni-app 离线项目使用 UTS 插件时报错的解决方法。

使用 uni-app 开发原生 APP 应用,使用了自己编写的 UTS 插件来实现原生的功能,插件在官方的基座中运行没有问题,但要在自己的 APP 项目中使用 UTS 插件,然后离线打包了自定义基座,在 HBuilderX 中运行就会报错。

报错信息

15:16:28.887[JS Framevork]当前运行的基座不包含原生插件[UTS-Proxy],请在manifest中配置该插件,重新制作包括该原生插件的自定义运行基座
15:16:28.894[Vue warn]: Unhandled error during execution of onLoad
at <Index_pageId=1__pagePath="pages/index/index"__pageQuery={}>
 Cannot read property invokeSync' of undefined
TypeError: Cannot read property "invokeSync' of undefined
at uni-jsframework. js: 32:205482
at en (uni-jsframework. js: 6:1760) at pn (uni-jsframework. js:6:1847)
at Array.c._weh.c.__weh (uni-jsframework. js: 6:28733)
at Object.pr [as invokeArrayFns](uni-jsframevork.js:17:1724)
at fe (uni-jsframework. js:2:901)
at kt(uni-jsframework.js: 2:1267)
at hn (uni-jsframework.js:2:2201)
at Ws (uni-jsframework.js: 7:8725)
at dl (uni-jsframework.js:16:6027)
报错截图
报错截图

错误分析

根据报错信息“当前运行的基座不包含原生插件”,判断应该是当前基座没有集成 UTS 插件的相关官方库,导致无法使用 UTS 插件,于是查询了相关文档,需要在线打包制作自定义基座。

但是我的 APP 项目是离线打包工程,并没有使用 uni-app 的在线打包,于是向 UTS 插件官方的开发人员求证,得到的回复是: UTS 插件目前没有专门的工具用来打包基座,推荐使用 uts 插件时用云端打包

解决方法

uts 插件目前还没有提供离线打包的相关工具,不过可以手动从引用 UTS 插件的项目下的 unpackage 文件中拷贝出编译后的 kotlin 源码到原生工程中,比较麻烦。

注意事项

目前 UTS 插件云端打包时很容易报错,导致打包失败,重新打包次数多了就会限制,甚至需要付费才能继续打包,所以最好仔细检查后在提交打包。