如果想在c++代码中调用java的方法的话首先要加入头文件
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include "platform/android/jni/JniHelper.h"
#endif
在要调用的方法的地方写入下面代码
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
{
JniMethodInfo minfo;
bool isHave = JniHelper::getStaticMethodInfo(minfo,
"org/cocos2dx/cpp/AppActivity", //类的路径
"showShare", //方法名
"()V"); //括号里的是参数,后面的是返回值。
if(isHave )
{
minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID,minfo.env->NewStringUTF(str.c_str()));
}
}
Z boolean
B byte
C char
S short
I int
J long
F floa
tD double
String是通过“Ljava/lang/String;”表示的,那相应的,String数组就应该是“[Ljava/lang/String;”。
jni返回值是Jstring格式,或者是jint格式等等,所以需要对返回值进行强转。
string str;
const char* cstr = minfo.env->GetStringUTFChars(retFromJava, 0);
str=cstr;
例子为强转为string格式。