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"}

字面意思说是需要再主线程里面执行,我们也查了官方的插件文档

https://doc.dcloud.net.cn/uni-app-x/plugin/uts-for-android.html#java-lang%E5%8C%85%E7%9A%84%E5%BC%95%E5%85%A5%E9%97%AE%E9%A2%98

里面有说到是在 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

8 回复

官方大大可否帮忙看下呢?

更多关于uni-app云打包的自定义基座运行的时候报{cause: null, message: "Method addObserver must be called on the main thread"}错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html


我更新了以后报错:TypeError: Failed to execute ‘appendChild’ on ‘Node’: parameter 1 is not of type ‘Node’. at uni-app-view.umd.js:7 感觉4.66bug挺多的

回复 1***@qq.com: 不知道是Bug还是怎么个情况,反正突然出现这种让人无从下手的问题,很难受

请问哪位大佬能帮忙看看呢?

没人帮忙看下吗?

官方都没有人帮忙答复下吗? 之前都有得呀,现在都不理会了么。 这段时间云打包总出现问题

官方都不带回复的吗?

这个错误确实是由于线程问题导致的。在Android开发中,某些UI操作必须在主线程执行。

对于uni-app中的UTS插件开发,需要注意:

  1. 默认情况下,UTS插件代码确实是在主线程执行的
  2. 但如果你的插件中使用了异步回调或者多线程操作,可能会切换到非主线程

解决方案:

  1. 检查插件代码中是否有异步操作或线程切换
  2. 确保调用addObserver方法时在主线程执行
  3. 可以使用runOnUiThread方法强制在主线程执行:
getActivity().runOnUiThread(new Runnable() {
    @Override
    public void run() {
        // 在这里调用addObserver方法
    }
});
回到顶部