问题描述

搞android SDK 的时候,因为接quickSDK没有lua版本,只好用android 原生版本,自己写 java跟lua的交互 java 跟 lua 交互有概率性的会出现闪退

问题分析

这种概率性的闪退,一般都是线程不安全导致的,于是我就去找,看到cocos2dx 里面有很多用到

mActivity:runOnUiThread(new Runnable(){
     public void run() {
     // xxoo xxoo
     }
})

然后我就认为这个是cocos2dx的主线程,然后就拼命的用它去调用lua,结果就是闪退不断, 这个时候我觉得是不对的,如果这个是主线程是不可能有这个问题,于是我再去找,发现一个方法长得跟它很像的

mActivity:runOnGLThread(new Runnable(){
     public void run() {
     // xxoo xxoo
     }
})

这时候我才清楚,原来这个GL线程才是我们游戏线程,UI线程是UI框架的,如果调用高级UI或者SDK就需要用UI线程。

解决方案

解决方案

cocos2dx的东西使用 GL线程 android高线UI使用 UI线程