android 平台 涉及到cocos的jni 调用
表象:加载页面,游戏页面崩溃
log 检查 :发现游戏页面,初始化缓慢
logcat errlog :
cocos2dx- call to OpenGL ES API with no current context(logged once per thread)
原因:
因为Android在启动cocos2d-x的Thread时,没有用context的主的Thread,而是使用的OpenGL的Thread
, 所以我们不能在主Thread去完成 本应该是在cocos2dx中OpenGL Thread中
完成的工作(即所调用的函数在Cocos2dx中做的工作)必须使用OpenGL的Thread去完成
public native static void nativeMethod();
public static void runNativeCallback(Runnable runnable)
{
Cocos2dxGLSurfaceView.getInstance().queueEvent(new Runnable() {
@Override
public void run() {
nativeMethod();
}
});
}