Cocos2dx Java调用C++遇到点疑惑

C++中可以使用自带的jnihelper来完成C++调用Java部分
在cocos2d::Layer的子类中 GameLayer.CPP中

因为接入一个第三方SDK(JAVA实现的)
实际情况是:C++调用Java弹出Android对话框,用户点击对话框,然后把这个事件传递回C++层,C++层要调用当前的GameLayer的一个方法
简单点描述就是:
在cocos2d::Layer的子类中 GameLayer.CPP中 C++层这样调用Java代码 JniHelper::getStaticMethodInfo(info, "com/game/tools/AppSDK", "reqInfo", "()V");

Java中完成相应的操作,然后再Java代码调用C++层的函数 public static native void gameMethod() 在CPP层实现如下方法 JNIEXPORT void JNICALL Java_com_game_tools_AppSDK_gameMethod (JNIEnv *, jclass); { // 这样是可以相互调用了 那么问题来了: // 我调用的这个gameMethod已经不是在GameLayer这个类的范围中了 怎么调用GameLayer这个类中的方法呢 }

我没具体实现过,不过可以给个建议。就是GameLayer.cpp调用java方法时,可以把c++对象当做参数传递到java,然然java回调c++时把这个对象再传递会c++。

方法有很多比如 GameLayer中添加个静态函数 又比如把GameLayer类做成全局单例