我正在编写一个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();
我认为我做的事情基本上是错误的。有什么想法吗?