0

jni を介して C++ (C ではない) と通信する Android アプリを作成しています。jstring を正常に渡すことができたので、セットアップは機能しますが、今度は jintarray を渡したいと思います。ただし、コードはネイティブ メソッドで Unsatisfied Link Error を返すため、適切に jintarray を返していないと思います。

extern "C" {

JNIEXPORT jintArray JNICALL Java_com_example_optimuse_MainActivity_generate(JNIEnv* env, jobject thiz, jintArray arr);

};

JNIEXPORT jintArray JNICALL Java_com_example_optimuse_MainActivity_generate(JNIEnv* env, jobject thiz){

    int mymusic[6];
    mymusic[0]=60;
    mymusic[1]=64;
    mymusic[2]=67;
    mymusic[3]=72;
    mymusic[4]=67;
    mymusic[5]=64;

    jintArray jmymusic = env->NewIntArray(6);

    env->SetIntArrayRegion(jmymusic, 0, 6, mymusic);

    return jmymusic;
}

そして、私はこれをJavaで次のように呼び出します:

int[] music = generate();

私は何か基本的な間違ったことをしていると思います。何か案は?

4

1 に答える 1

0

@マイケルOMG!あなたが正しいです。これは解像度のために画面上で途切れました;-)配列のインポートで行ったすべてのテストからそこにあったに違いありません。

百万に感謝します、もちろんそれはそうあるべきです

JNIEXPORT jintArray JNICALL Java_com_example_optimuse_MainActivity_generate(JNIEnv* env, jobject thiz);

};
于 2012-07-27T13:26:25.150 に答える