微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

quick-cocos调java函数异常报错

问题

接入第三方sdk的时候,lua调java函数的过程中,一直返回false,-4,即java函数出现异常,报错内容

Can't create handler inside thread that has not calledLooper.prepare()

大概意思是在子线程中,使用了UI组件,看了下代码,发现在java函数中使用了SurfaceView

原因

quick-cocos 在 Android 上以两个线程来运行,分别是负责图像渲染的 GL 线程和负责 Android 系统用户界面的 UI 线程。lua代码是在GL线程中运行的,所以回调函数也是在GL线程中运行的,而子线程是不能刷新UI的

解决办法

在UI线程中调用就好了

public static void luaCallJavaFunc(){
     AppActivity.appActivity.runOnUiThread(new Runnable() {

            @Override
            public void run() {
                // Todo Auto-generated method stub
                //把你的代码移到这里来就可以了
                }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐