Java与C++都有String对象,而c没有,只有char类型,所以在向C传入String类型的时候,如何处理需要注意一点
jstring Java_com_skymaster_hs_test4_MainActivity_getString(JNIEnv *env,jobject,jstring str){ const char* cstr = env->GetStringUTFChars(str,0); char temp[30] = "hs"; strcat(temp,cstr); jstring ret = env->NewStringUTF(temp); return ret; }
jstring 是JNI层的变量,作为java与c的桥梁
在c中要处理java的String对象,只能定义一个char* 指针,但是注意要定义一个char 数组来保存String的字符串,因为形参
在返回的时候会销毁,所以如果不保存内容最后放回的是null。c的编码格式是UTF所以调用NewStringUTF函数来转换成string.返回给java层。