问题描述
我在CA中用C++创建了一个新线程,然后通过jni去调用java的代码显示toast public static void showToast(final String strContent) { Message msg = new Message(); msg.what = Cocos2dxHandler.HANDLER_SHOW_TOAST; msg.obj = new Cocos2dxHandler.ShowToastMessage(strContent); sCocos2dxActivity.mHandler.sendMessage(msg); }不在线程中去调用的话,是正常的,放在线程中去调用的话,放在手机上就程序就奔溃了
解决方案
调用toast不需要再另起线程啊,另起线程容易出现问题子线程函数里需要使用AttachCurrentThread()和DetachCurrentThread()这两个函数。你需要gJvm->AttachCurrentThread(&env, NULL)来获取env。
时间: 2024-09-28 10:33:33