NDK char* 如何转成 jcharArray 返回给java层

在C层有一个字节数组,char*,知道它的长度,现在要把这个数组传给java层,其实就是要把它变成jcharArray吧,那怎么变呢?... 在C层有一个字节数组,char*,知道它的长度,现在要把这个数组传给java层,其实就是要把它变成jcharArray 吧,那怎么变呢? 展开
 我来答
小狂中E
2013-09-22 · TA获得超过1418个赞
知道大有可为答主
回答量:1514
采纳率:66%
帮助的人:1019万
展开全部
env下有2个函数:
jcharArray NewCharArray(JNIEnv *env, jsize len);
void (JNICALL *SetCharArrayRegion)
(JNIEnv *env, jcharArray array, jsize start, jsize len, const jchar *buf);
要注意char*里的字符编码
追问
编译报错啊
expected 'jchar const *' but argument is of type 'char *'

c语言层的是char*,
我想返回给java的是一个byte数组

应该用这两个方法

NewByteArray
SetByteArrayRegion

问题解决了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-10-17
展开全部
char msgdata[40] = {0};
// 转为 byte[] 返回
jbyteArray byteArray = env->NewByteArray(40);
env->SetByteArrayRegion(byteArray, 0, 40, (jbyte *) msgdata);
return byteArray;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式