Android JNI开发---java与c++之间的中文字符串传递
?? 最近在做一个Android电子词典,其中在从词库中读取词条时,用到了jni---java调用c++;在java代码里调用本地方法时,难免会java与c++之间传递参数。传递的参数若是英文的话,比较好解决,网上一般都有解决方法,用着也没问题;但是在传递中文字符串时,就需要转换一下。下面就是我自己的传递方式:
?? 1.C++? --> java
??? 在C++中,解压出的词条是 jbyte* 类型的,有英文,有中文,所以,我就把这些数据以byteArray的形式给传递到java里面:
//功能:接收从java传递过来的数组//输入:lems java传递过来的数组void searchZNInputLemmas(JNIEnv *env, jobject obj,jbyteArray lems){ jbyte * str; str =(jbyte *) (env)->GetByteArrayElements(lems, false); (env)->ReleaseByteArrayElements(lems, str, 0); }??