首页 APP开发 正文内容

uni-app 开发 UTS 插件时,运行项目报错:云端服务器返回错误:当前HBuilderX版本 3.98 的 uts 云端编译器不存在或正在更新

2023年11月27日 , , 315

介绍 UTS 插件运行失败,报错的一种情况的解决方法。

问题描述

uni-app 的 UTS 插件已经发布有一段时间了,很多开发已经开始学习 TS,以便更好地上手 UTS 语言,进而可以开发功能更强大的、可以调用安卓或者 iOS 原生 API 的插件。不过最近在写自己的 UTS 插件时,想要运行 APP 项目来调试插件,结果编译失败,HbuilderX 控制台报错了:

[Vue warn]: Unhandled error during execution of native event handler at <Index_pageId=2__pagePath="pages/login/index"__pageQuery={}>
22:06:04.053 Error: targetMethod error::java. lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to io.dcloud.uts.UTSJSONObject
22:06:16.628 [Vue warn]: Unhandled error during execution of native event handler at <Index_pageId=2__pagePath="pages/login/index"_pageQuery=(} ...>
22:06:16.628 Error: targetMethod error::java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to io.dcloud.uts.UTSJSONObject
uts 插件运行控制台报错
uts 插件运行控制台报错

除了控制台报错,HbuilderX 上还弹出了信息框,内容如下:

云端服务器返回错误:当前HBuilderX版本 3.9 8的 uts 云端编译器不存在或正在更新,请稍后再试。
错误弹窗
错误弹窗

报错原因分析

从报错和弹窗提示上看,貌似连 UTS 编译器都没有生效,导致和原生通讯时,参数类型无法成功转换。尽管尝试排查了问题,还是很难找到出现问题的原因。

最后的解决方法

后来注意到,由于有新的功能需要用最新的 bata 版的 HbuilderX,所以在电脑上同时启动了一个正式版和 bata 版的 HbuilderX,问题很可能就出现在这了。于是我先把两个 HX 都退出,保险起见,重启电脑后只打开 HbuilderX beta 版,结果运行成功了。