话说最近真是写了好多小游戏。。。然后编译到android,然后就各种出错了。。。有一个比较头疼的问题,改了好久没改出来
具体问题如下:
c++通过jni调用android没有问题,但是当android通过jni调用c++时候,如果涉及到c++方面ui的变动,则会报下面的error
01-28 11:44:45.264: E/libEGL(23655): call to OpenGL ES API with no current context (logged once per thread)
这个问题会导致ui上图片不能正确的显示,或黑框,或直接崩溃。。。
话说真是困扰了好久,连重建项目这种事情我都干了。。。
在网上搜了资料,发现了以下解释:
OpenGL是一个其于上下文Context 环境开发的,所以每个线程需要保存自已的运行环境,如果没有的话则会报错:
"call to OpenGL ES API with no current context logged once per thread"
解决方法如下:
例如我们原来调用c++的函数是这么调用的:
//声明
public static native void buySuccess(String GoodsType);
//调用
AppActivity.buySuccess("aa");