2011-09-16 43 views
4

我的JAVA類代碼片段。我想使用JNI從我的C文件訪問getReg_chal()方法:什麼是使用JNI的字節[]字節數組的方法描述符/簽名?

public byte[] getReg_chal() { 
    return reg_chal; 
} 

我的C文件做一些JNI操作:

mid = (*env)->GetMethodID(env, info, "getReg_chal()", "([B)V"); 

mid = (*env)->GetMethodID(env, info, "getReg_chal()", ***); 

我想知道我的byte []的方法描述符。寫入"({B)V"給了我找不到方法的錯誤。我會填寫什麼***? 請幫幫我。提前致謝。

+0

你從哪兒弄來' 「({B)V」'而來,爲什麼你認爲它會工作嗎? –

回答

13
+0

[B給我虛假方法描述符錯誤。 –

+2

調試提示:搜索你的Android項目文件夾,打開bin/com文件夾,在你的內部的某個地方可以找到你的java源代碼編譯的.class文件。 使用Total Commander等工具來查看類文件(F3 - lister),雖然它是二進制文件,但您會在其中看到一些文本。查找方法名稱getReg_chal的文本。在它旁邊,你應該看到它的jni簽名。從那裏複製/粘貼,你就完成了。 –

+0

它應該是「()[B」在你的情況。 –

相關問題