如何在Android开发中将jchar转换为JNi中的char?

Roh*_*n K 0 java java-native-interface android

我想在JNI中将jchar数组转换为char数组?我该怎么做:

JNI代码片段:

jcharArray arr = (jcharArray) (*env)->CallObjectMethod(env, obj, mid);
int count = (*env)->GetArrayLength(env, arr);
jchar* chars = (*env)->GetCharArrayElements(env, arr, 0);

char reg_chal= chars[1];
Run Code Online (Sandbox Code Playgroud)

char reg_chal = chars [1]语句将垃圾值插入reg_chal.如何解决此问题.提前致谢.

Edw*_*son 9

如果您注意到JNI文档,则a jchar是无符号的16位值(这是有意义的,因为java字符由UTF-16表示.)如果您想要一个8位值(C的大小char),您应该使用jbyte.