2009-11-29 45 views
2

我想在我的android項目中使用預先存在的本地C庫..該庫使用NDK工具構建得很好...Android NDK:自動生成函數聲明?

現在我明白了,我不能只是打電話進庫,但我的圖書館需要包含jni.h和添加特定的函數聲明,例如像:

JNIEXPORT jint JNICALL Java_com_MultPkg_Mult_mult(JNIEnv *, jobject, jint, jint); 

但因爲我使用的是現有的庫那我也使用在其他平臺上我不不喜歡用這些定義亂丟整個代碼的想法,這隻會包裝我的真實功能......

有沒有辦法解決這個問題?如果這真的是唯一的方法,有沒有辦法根據我現有的C函數聲明/定義自動生成這些?

非常感謝

回答

1

使用javah工具隨你的JDK,因爲它是不是Android的SDK也NDK的一部分。

0

使用SWIG自動生成jni兼容的c文件。它還會生成.java類,以便您的android與其中包含所有本機方法的java類進行交互。

看一看這個:SWIG Android