how Can my JNI WORK?55555555


#1

my first use JSB to bind javascript method to C
i need a method c*+ to take java coding as :
void CCNode::SaveInfo
{

// 这里执行 退出的提示
CCLOG (“cocos2d: SaveInfo: 这里保存!”);
////静态函数示例1.无参数,无返回值———————————$$$$$$——————————
#if //判断当前是否为Android平台
JniMethodInfo minfo;//定义Jni函数信息结构体
//getStaticMethodInfo 次函数返回一个bool值表示是否找到此函数
// bool isHave = JniHelper::getStaticMethodInfoV“);
bool isHave = JniHelper::getStaticMethodInfo(minfo,”CtoJavaHandler/ConnectHandler“,”SaveInfo“,”V“);
if (!isHave) {
CCLog(”jni:此函数不存在“);
}else{
CCLog(”jni:此函数存在“);
//调用此函数
jstring stringArg = minfo.env~~>NewStringUTF;// $
minfo.env~~>CallStaticVoidMethod(minfo.classID, minfo.methodID,stringArg);
minfo.env~~>DeleteLocalRef;
minfo.env~~>DeleteLocalRef(minfo.classID);
}
CCLog(”jni-java函数执行完毕“);
#endif

}

//和 java 交互 实现 读取
const char* CCNode::LoadInfo()
{

// 这里执行 退出的提示
CCLOG (“cocos2d: LoadInfo: 这里读取!”);
////静态函数示例1.无参数,无返回值———————————$$$$$$——————————
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) //判断当前是否为Android平台
JniMethodInfo minfo;//定义Jni函数信息结构体
//getStaticMethodInfo 次函数返回一个bool值表示是否找到此函数
// bool isHave = JniHelper::getStaticMethodInfo(minfo,”org/cocos2dx/moonwarriors/MoonWarriors“,”SaveInfo“,”V“);
bool isHave = JniHelper::getStaticMethodInfo(minfo,”CtoJavaHandler/ConnectHandler“,”LoadInfo“,”Ljava/lang/String;“);
if (!isHave) {
CCLog(”jni:此函数不存在“);
return”NOMETHOD!“;
}else{
CCLog(”jni:此函数存在");
//调用此函数
jstring returnArg_J;
returnArg_J=minfo.env~~>CallStaticObjectMethod;
minfo.env~~>DeleteLocalRef;
const char* returnArg_C = minfo.env~~>GetStringUTFChars;
minfo.env~~>ReleaseStringUTFChars;
minfo.env~~>DeleteLocalRef;

CCLog;
return returnArg_C;
}
CCLog;
#endif
return “NOTANDROID!”;
}
the first makes bug :
01-02 10:40:46.054: A/MOZ_Assert: Assertion failure: !cx~~>isExceptionPending, at …/jscntxtinlines.h:375
01-02 10:40:46.054: A/libc: Fatal signal 11 at 0x00000000
the second return char is luanma! bug:
A/libc: Fatal signal 11 at 0x00000000
My English is poor .so i say by chinese again…
我想用jsb绑定两个函数 一个是保存一个 字符串到 android手机 另外一个是 读取, js 绑定到c*+ 这部分貌似没问题,c++ 调用java的时候。两个方法都是 执行一下 程序就推出来。一开始以为是没有释放,后来释放来。也出问题来。出现问题都是再java层调用之后,然后吧,第二个方法,调用char的 是乱码 不是中文回传也是乱码。。实在不懂啊。。是按照 cocos2d-x的一个类仿写的。。 头疼 ing。
求各位指导啊。。。!!!


我这样绑定 对吗?