【发布时间】:2011-06-07 08:28:47
【问题描述】:
背景
我在 JNI 中使用字节数组。而且我无法获得 jbyteArray 的 length。我正在 Windows 7 中的 eclipse 中编写代码。
Java 代码:
private native int Enroll( byte[] pSeed );
JNI 代码:
在 JNI 中,我有一个结构,它有两个成员 unsigned long length 和 unsigned 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;
}
问题 1:如何在 JNI 中获取 jpSeed 的长度?
问题 2:此代码是否可以正常工作 bd.data[1] = jbyteArray; ?
【问题讨论】:
标签: android arrays eclipse size java-native-interface