CallStaticObjectMethod 返回空指针的问题
月亮518 2016-11-21 11:47:40 下载网上的一份cocos2dx源码编译,在手机上运行老是闪退,发现以下函数的
jobj = minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID); 返回jobj值为0,导致外层函数用到空指针。
有大侠知道下面的代码有什么问题吗?先谢谢了~~
代码如下:
#include "JniHelper.h"
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
//////////////////////////////////////////////////////////////////////////
using namespace std;
bool getJniMethod(jobject& jobj, JniMethodInfo &minfo, const char* sFunction, const char* sSignature)
{
#define JNI_PACKAGE "com/io/game/JniCaller"
//getStaticMethodInfo,判断Java静态函数是否存在,并且把信息保存到minfo里
//参数1:JniMethodInfo
//参数2:Java类包名+类名
//参数3:Java函数名称
//参数4:函数参数类型和返回值类型
if (!JniHelper::getStaticMethodInfo(minfo,JNI_PACKAGE,"shared","()L" JNI_PACKAGE ";"))
return false;
//这里的调用getInstance,返回Test类的对象。
jobj = minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID);
return JniHelper::getMethodInfo(minfo,JNI_PACKAGE,sFunction,sSignature);
}