请教熟悉JNI调用的高手,我有这样一个问题:
用JNI调用c++的函数返回一个jstring型的字符串的时候,因为这个串是以后使用的,所以不能在c++函数里使用env->ReleaseStringChars释放掉资源,这样的话会不会造成内存的泄漏,java的虚拟机会自动释放这个资源么,比如下边的这段程序:JNIEXPORT jstring JNICALL Java_hello
(JNIEnv *env, jclass obj)
{
jstring jsRtn = NULL;
....
jsRtn = (env)->NewString("hello",...,..);//一般使用完时要释放掉的
return jsRtn;//这里将jstring return 了
}
用JNI调用c++的函数返回一个jstring型的字符串的时候,因为这个串是以后使用的,所以不能在c++函数里使用env->ReleaseStringChars释放掉资源,这样的话会不会造成内存的泄漏,java的虚拟机会自动释放这个资源么,比如下边的这段程序:JNIEXPORT jstring JNICALL Java_hello
(JNIEnv *env, jclass obj)
{
jstring jsRtn = NULL;
....
jsRtn = (env)->NewString("hello",...,..);//一般使用完时要释放掉的
return jsRtn;//这里将jstring return 了
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货