如何将字节数组从android java类传递给JNI C NDK?

我在 java类中有字节数组,我想将该字节数组传递给JNI C类,我无法在JNI C中访问该数组,请帮忙.

解决方法

你需要声明接收数组的JNI函数(在 Java中):

private native void sendData(byte[] data);

你像任何其他函数一样调用函数

sendData(buffer);

然后在你的C代码中实现这样的函数

JNIEXPORT void JNICALL Java_com_packageXXX_yourClass_sendData( jnienv*
env,jobject thiz,jbyteArray data);

读取数组:

byte * cData = env->GetByteArrayElements(data,&iscopy);

并释放:

env->ReleaseByteArrayElements(data,cData,JNI_ABORT);

上面的代码是C.要使它适用于C,您需要将jni环境(env)作为要调用函数的第一个参数传递,如下所示:

(*env)->GetByteArrayElements(env,…)

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...