4

私はnativeLibにネイティブ関数を持っているのを見てください

 public native int [] getArrayNative();

私はこのように使用しています

 private static int[] DEMO_NODES;

 DEMO_NODES =  nativeLib.getArrayNative();

Cコードでは

JNIEXPORT jintArray JNICALL Java_com_testing_NativeLib_getArrayNative
  (JNIEnv *env, jobject obj) {

    int array[] = { 0, 1, 0, 1, 2, 1, 2, 3, 2, 3, 1, 2, 1, 2, 3, 2, 3, 1, 2 };
    jintArray temp = (*env)->NewIntArray(env,20);
    temp[0] = array[0];   // gives error
    return temp;    
}

ここで arry[] 全体を返したいのですが、その方法がわかりません。ここで、arry[] の値をコピーしようとした内部で新しい配列 temp を取得しましたが、エラーが表示されます。では、それを行う方法

4

1 に答える 1

4

SetIntArrayRegion配列を埋めるために使用jintArrayします。これは単なる魔法の内部構造であり、インデックスを使用してアクセスできるものは何もありません。

プロトタイプvoid SetArrayRegion(JNIEnv *env, array, jsize start, jsize len, *buf);

于 2012-04-23T09:53:03.417 に答える