读书人

AndroidJNI调用char*与jstring互相转换

发布时间: 2012-12-25 16:18:28 作者: rapoo

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 需要注意的是 释放内存!!!

读书人网 >JavaScript

热点推荐