AndroidJNI调用char*与jstring相互转换
在使用jni调用时经常遇到数据类型转换问题,以下是char*与jString相互转换的代码:
?
//C字符串转java字符串jstring strToJstring(JNIEnv* env, const char* pStr){ int strLen = strlen(pStr); jclass jstrObj = (*env)->FindClass(env, "java/lang/String"); jmethodID methodId = (*env)->GetMethodID(env, jstrObj, "", "([BLjava/lang/String;)V"); jbyteArray byteArray = (*env)->NewByteArray(env, strLen); jstring encode = (*env)->NewStringUTF(env, "utf-8"); (*env)->SetByteArrayRegion(env, byteArray, 0, strLen, (jbyte*)pStr); return (jstring)(*env)->NewObject(env, jstrObj, methodId, byteArray, encode);}?
?
?
?
1 楼 doloveme 2012-12-06 需要注意的是 释放内存!!!