最近加某运营商支付SDK,游戏中有一个界面中取消支付时程序崩溃,其他界面支付或取消正常。看了LogCat,发现“call to OpenGL ES API with no current context(logged once per thread)”。
网上查了一下,发现一个方案。
出这问题,是取消支付时回调Native代码时发生的,回调函数是:
native public void buySuccess(int realIndex);
那么应该这样包装一下:
public void buySuccessJava(final int realIndex)
{
Cocos2dxGLSurfaceView.getInstance().queueEvent(new Runnable() {
@Override
public void run() {
buySuccess(realIndex);
}
});
}