私は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