0

我正在编写一个通过 jni 与 C++(不是 C)进行通信的 Android 应用程序。我能够成功传递一个 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();

我想我在做一些基本错误的事情。有任何想法吗?

4

1 回答 1

0

@迈克尔天哪!你说的对。由于分辨率的原因,这在我的屏幕上被截断了 ;-) 在我对导入数组所做的所有测试中一定已经存在。

谢谢一百万,当然应该是

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

};
于 2012-07-27T13:26:25.150 回答