我正在编写一个通过 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();
我想我在做一些基本错误的事情。有任何想法吗?