环境:cocos2dx 2.3、ADT
03-10 17:16:40.513: E/libEGL(22905): call to OpenGL ES API with no current context (logged once per thread)
03-10 17:16:40.513: A/libc(22905): Fatal signal 11 (SIGSEGV), code 2, fault addr 0xe2b36858 in tid 22905 (gc.mygamenormal)
在java回调C++代码的时候,程序闪退并且报错,错误如上。
报错代码如下
if (LiBaoLayer::showLiBao && LiBaoLayer::isFirstGet)
{
SceneMgr::getInstance()->getCurrentScene()->addChild(LiBaoLayer::create());
}
原因是LiBaoLayer这个类没有在Java调用C++前使用过,所以无法使用它里面的方法和变量。
解决办法,在Java调用这段代码之前,进行一次LiBaoLayer类的实例化就可以解决这个闪退的BUG。至于原理,还需要继续研究探讨...