Я пытаюсь понять jni, поэтому я начал взламывать hellojni и столкнулся с этой проблемой.
Мой код Java выглядит следующим образом:
short[] buf = new short[16];
Log.d("hello", "before!");
write(buf, 0, 16);
и мой код C выглядит так:
jint
Java_com_example_hellojni_HelloJni_write(JNIEnv* env, jshortArray buf, jint off, jint len)
{
char debug[1024];
int ii = 0;
jsize cbuflen = (*env)->GetArrayLength(env, buf);
sprintf(debug, "array length: %d", cbuflen);
LOGD(debug);
...
...
Вывод:
длина массива: 1079082088
Почему длина массива такая большая?