0
- 我有一個C++方法我試圖從Java代碼中調用
方法的簽名是:Android的JNI UnsatisfiedLink異常
的Java:
公共類FLVCamActivity擴展活動{
靜態{
System.loadLibrary(「FLVCam」);
System.out.println(「Loaded FLVCam」);
}
public native void RunFlvServer(int iCamId);C++:
外部的 「C」 JNIEXPORT空隙JNICALL Java_com_sophin_flvcam_FlvCamActivity_RunFlvServer(JNIEnv的*的env,jobject javaThis,jint iCamId)
- 在運行時期間,的System.loadLibrary( 「FLVCam」)成功,但是,調用'RunFlvServer'失敗,因爲沒有找到原生Lcom/sophin/flvcam/FLVCamActivity的實現; .RunFlvServer(I)V「
- 我使用的SDK版本是:AndroidSDK = 15,NDK = r7b,minsdk @清單= 15
- 使用'nm -g'列出我的本機lib公開的所有導出條目,清楚地表明本機方法已正確導出: 0006c0a8 T Java_com_sophin_flvcam_FlvCamActivity_RunFlvServer。
考慮到上述情況,爲什麼我會得到這個UnsatisfiedLink異常?
Nadav在Sophin
Java本機函數聲明是怎樣的?它應該在com.sophin.flvcam包中,像這樣在FlvCamActivity類中:「native void RunFlvServer(int iCamId)」。 – 2012-04-22 19:38:27
使用javah命令可以很好地使用功能標題。 – 2012-04-23 03:35:33