传递jIntArray会产生不满意的链接错误 我正在编写一个Android应用程序,它通过JNI与C++(不是C)进行通信。我能够成功地通过一个jstring,因此设置工作正常,但现在我想通过一个Jutray。但是,代码在本机方法上返回了一个不满意的链接错误,因此我认为我没有正确地返回一个数组 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; }

传递jIntArray会产生不满意的链接错误 我正在编写一个Android应用程序,它通过JNI与C++(不是C)进行通信。我能够成功地通过一个jstring,因此设置工作正常,但现在我想通过一个Jutray。但是,代码在本机方法上返回了一个不满意的链接错误,因此我认为我没有正确地返回一个数组 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,android,c++,java-native-interface,Java,Android,C++,Java Native Interface,我在java中这样称呼它: int[] music = generate(); 我想我做错了一些基本的事情。有什么想法吗?@Michael OMG!你是对的。由于分辨率的原因,我的屏幕上的内容被切断;-)我在导入阵列时做的所有测试中都有 非常感谢,当然应该是 JNIEXPORT jintArray JNICALL Java_com_example_optimuse_MainActivity_generate(JNIEnv* env, jobject thiz); }; 您的函数定义与声明不

我在java中这样称呼它:

int[] music = generate();

我想我做错了一些基本的事情。有什么想法吗?

@Michael OMG!你是对的。由于分辨率的原因,我的屏幕上的内容被切断;-)我在导入阵列时做的所有测试中都有

非常感谢,当然应该是

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

};

您的函数定义与声明不同(它少了一个参数)。