如何将JNI中将 char* 字符串转换成 jstring? 这个问题困扰了我好久,也用不同的方法进行调试过,都没有成功。
今天无意中调试成功了下面的代码,可以方便的将char*转换成jstring。
jstring CharTojstring(JNIEnv* env, char* str)
{
jsize len = strlen(str);
jclass clsstring = (*env)->FindClass(env, "java/lang/String");
jstring strencode = (*env)->NewStringUTF(env,"GB2312");
jmethodID mid = (*env)->GetMethodID(env,clsstring, "<init>", "([BLjava/lang/String;)V");
jbyteArray barr = (*env)-> NewByteArray(env,len);
(*env)-> SetByteArrayRegion(env,barr,0,len,(jbyte*)str);
return (jstring)(*env)-> NewObject(env,clsstring,mid,barr,strencode);
}
上面的代码我调试通过的。