2012-07-27 72 views
0

我在寫一個Android應用程序,它通過jni與C++(不是C)進行通信。我能夠成功傳遞一個jstring,所以安裝程序可以工作,但現在我想傳遞一個jintarray。但是,代碼在本地方法返回一個不滿意的鏈接錯誤,所以我認爲我沒有正確地返回一個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(); 

我想我做一些基本錯誤。有任何想法嗎?

+2

你的函數定義從聲明的區別(它有一個參數以下)。 – Michael 2012-07-27 13:14:31

回答

0

@Michael OMG!你是對的。由於分辨率的緣故,這在我的屏幕上被切斷了;-)我必須在導入數組的時候進行所有測試。

太感謝了,當然應該是

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

}; 
相關問題