传递jIntArray会给出不满意的链接错误

时间:2012-07-27 13:06:47

标签: java android c++ java-native-interface

我正在编写一个Android应用程序,它通过jni与C ++(而不是C)进行通信。我能够成功传递一个jstring,所以设置工作,但现在我想传递一个jintarray。但是,代码在本机方法上返回一个不满意的链接错误,所以我认为我没有正确返回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();

我认为我做的事情基本上是错误的。有什么想法吗?

0 个答案:

没有答案