我想了解JNI,所以我就開始了黑客hellojni,我就遇到了這個問題。getArrayLength()返回一個龐大的數字...
我的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
爲什麼陣列長度如此之大?
這是奇怪,甚至通過一個簡單的整數不起作用!這裏發生了什麼!!! – user645402
這真的是你的全部功能,還是有什麼缺失? – EboMike