gpt4 book ai didi

android - JNI : How to get jbyteArray size

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:53:47 25 4
gpt4 key购买 nike

背景

我在 JNI 中使用字节数组。而且我无法获取 jbyteArraylength。我在 Windows 7 中的 eclipse 中编写代码。

Java 代码:

private native int Enroll( byte[] pSeed );

JNI代码:

在 JNI 中,我有一个结构,它有两个成员 unsigned long lengthunsigned char data[1]

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

现在,当我的 JNI 函数作为参数 jbyteArray jpSeed 获取时,我想获取 jpSeed 的长度并将其设置为结构的长度成员。

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;
}

问题一:如何在JNI中获取jpSeed的长度?

问题 2:此代码能否正确运行 bd.data[1] = jbyteArray;

最佳答案

  1. 您可以使用GetArrayLength(JNIEnv* env, jbyteArray array) Read here .

  2. 不确定你想做什么,我假设你想要 bd.data[1] 中的 jpSeed 的内容。无论如何,应该使用 GetByteArrayElements(...) 来访问字节数组的内容。

关于android - JNI : How to get jbyteArray size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6262537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com