android – JNI:如何获得jbyteArray大小

前端之家收集整理的这篇文章主要介绍了android – JNI:如何获得jbyteArray大小前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
背景

我正在使用JNI中的字节数组.而且我无法获得jbyteArray的长度.我正在Windows 7中的eclipse中编写代码.

Java代码

private native int Enroll( byte[] pSeed );

JNI代码

在JNI中,我有一个结构,它有两个成员无符号长度和无符号字符数据[1]

typedef struct blobData_s {
    unsigned long     length;
    unsigned char     data[1];
} blobData_t;

现在我的JNI函数得到参数jbyteArray jpSeed我想得到jpSeed的长度并将其设置为struct的length成员.

JNIEXPORT jint JNICALL Java_com_Test_Enroll( JNIEnv* env,jobject thiz,jbyteArray jpSeed ){
     blobData_t* bd = malloc( sizeof(blobData_t) );
     bd->length = **Question 1**
     bd->data[1] = jbyteArray;
}

问题1:如何在JNI中获得jpSeed的长度?

问题2:此代码是否正常bd.data [1] = jbyteArray; ?

解决方法

>您可以使用GetArrayLength(JNIEnv * env,jbyteArray数组)阅读 here. >不确定你想做什么,我假设你想要bd.data [1]中jpSeed的内容. 无论如何,访问字节数组的内容应该使用GetByteArrayElements(…)来完成.
原文链接:https://www.f2er.com/android/317741.html

猜你在找的Android相关文章