uni-app云打包的自定义基座运行的时候报{cause: null, message: "Method addObserver must be called on the main thread"}错误
uni-app云打包的自定义基座运行的时候报{cause: null, message: “Method addObserver must be called on the main thread”}错误
问题描述
我们更新了HbuilderX后突然出现一个问题,打包的安卓自定义基座无法调用uts插件,再没有做任何改动的情况下。
只要执行插件方法就会一直弹
{cause: null, message: "Method addObserver must be called on the main thread"}
字面意思说是需要再主线程里面执行,我们也查了官方的插件文档
里面有说到是在 uni-app x 平台:默认代码执行在 main线程 执行。
请问这个是什么原因啊? 需要从哪里排查这个问题? 请官方技术大佬帮忙看下呢
更多关于uni-app云打包的自定义基座运行的时候报{cause: null, message: "Method addObserver must be called on the main thread"}错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html
官方大大可否帮忙看下呢?
更多关于uni-app云打包的自定义基座运行的时候报{cause: null, message: "Method addObserver must be called on the main thread"}错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html
回复 1***@qq.com: 不知道是Bug还是怎么个情况,反正突然出现这种让人无从下手的问题,很难受
请问哪位大佬能帮忙看看呢?
没人帮忙看下吗?
官方都没有人帮忙答复下吗? 之前都有得呀,现在都不理会了么。 这段时间云打包总出现问题
官方都不带回复的吗?
这个错误确实是由于线程问题导致的。在Android开发中,某些UI操作必须在主线程执行。
对于uni-app中的UTS插件开发,需要注意:
- 默认情况下,UTS插件代码确实是在主线程执行的
- 但如果你的插件中使用了异步回调或者多线程操作,可能会切换到非主线程
解决方案:
- 检查插件代码中是否有异步操作或线程切换
- 确保调用
addObserver
方法时在主线程执行 - 可以使用
runOnUiThread
方法强制在主线程执行:
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
// 在这里调用addObserver方法
}
});