这个问题是因为Android在启动cocos2d-x的Thread时,没有用context的主的Thread,而是使用的OpenGL的Thread,所以我们不能在主Thread去完成 本应该是在cocos2dx中OpenGL Thread中 完成的工作(即所调用的函数在Cocos2dx中做的工作), 必须使用OpenGL的Thread去完成︰
public static native void nativeCallback(String code, String params); //原本程序中调用的java函数
public static void runNativeCallback(final String code, final String params)//增加此函数,修改后在调用nativeCallback的地方调用runNativeCallback即可
{
Cocos2dxGLSurfaceView.getInstance().queueEvent(new Runnable(){
@Override
public void run()
{
nativeCallback(code, params);//在此调用原函数
}
});
}
时间: 2024-10-22 03:26:53