cocos2d-x 3.0bata 版本在
Cocos2dxActivity 的create方法下面直接访问c++的jni方法会崩溃。原因是cocos2d-x部分完全构建好需要一些延迟时间,所以java访问不到c++里面的JNI函数。
在create方法里面改造如下代码。就可以解决了。
publicclass Cocos2dxActivity extends NativeActivity{
//添加一个Handler 在create代码之前。
private Handlerhandler =new Handler();
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//延迟执行
handler.postDelayed(new Runnable()
{
publicvoid run()
{
execute();
}
}, 100 * 1 );//时间为1秒
}
privatevoid execute()
{
//创建一个线程
new Thread(new Runnable()
{
publicvoid run()
{
String a="";
a = String.valueOf((int)(Math.random() * 10+1)) ;
changeTTFLabel("Test MyLabel Change!"+a);
}
}).start();
}
publicstatic native void changeTTFLabel(String textStr);
}