Android JNI部分得到jbytearray,Java用byte[]数组进行接收。该如何实现?

先吐槽一下,我特么在百度上问过好多问题了。可是总也没有人回答。请教这是为何?难道百度知道上就没有人了么?我在Java中写了一个native方法。publicnatives... 先吐槽一下,我特么在百度上问过好多问题了。可是总也没有人回答。请教这是为何?难道百度知道上就没有人了么?
我在Java 中写了一个native方法。public native static byte[] getData().然后在JNI层写了一个相对应的函数
JNIEXPORT jbyteArray JNICALL Java_com_test_getData().
现在我已经在JNI得到了数据,也已经封装成了jbyteArray。可是我不知道该怎么把这个值进行封装返回,让Java端能进行接收。求教大神教育?
展开
 我来答
home永远18岁
2015-02-04 · 超过64用户采纳过TA的回答
知道答主
回答量:129
采纳率:0%
帮助的人:114万
展开全部
你都已经写方法的返回值了,就直接return 这个jbyteArray。java端就能接受到
追问
抱歉,直接返回是不可以的。实际测试过了。
追答
不用抱歉,既然这样我也试试。

public class NativeInterface {
public NativeInterface()
{

}
static{

System.loadLibrary("JniPicture");

}

public static native byte[] getData(byte[] data);
}

jni:
JNIEXPORT jbyteArray JNICALL Java_com_s2icode_main_NativeInterface_getData(
JNIEnv *env, jclass, jbyteArray jbjava) {
jbyteArray jb = jbjava;
__android_log_write(ANDROID_LOG_INFO, "hello", "BmpToGray777");
return jb;
}

调用处:
byte[] b = NativeInterface.getData(arrData);
Log.i("BAIDU", "b::::=="+b+"java arrData="+arrData);

打印结果:
02-05 10:48:21.015: I/BAIDU(892): b::::==[B@4368b5b8java arrData=[B@4368b5b8

顺便问下网友采纳是谁?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式