以前写过一次,但是最近在做cocos2d-x通过jni调用java代码的东西,然后又忘了,所以写一下备注一下
cocos2d-x版本:2.2.1
代码:
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include
#include "platform/android/jni/JniHelper.h"
#include
#endif
引入头文件,在win32下是代码是无效的,所以加个判断。
源文件:
std::string GameUtil::getUUID()
{
std::string str;
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) //判断当前是否为Android平台
JniMethodInfo minfo;//定义Jni函数信息结构体
bool isHave = JniHelper::getStaticMethodInfo(minfo,
"com/test/hello/hello", //类的路径。最后一个hello是java文件名,但是不需要加入文件名后缀
"getUUID", //方法名
"()Ljava/lang/String;"); //括号里的是参数,后面的是返回值。
jstring jstr;
if (isHave) {
//CallStaticObjectMethod是返回一个jobject格式的函数
/