用於視頻編碼的負載包括C一個DLL ++代碼OSGi服務:java.lang.UnsatisfiedLinkError中調用DLL - 時稱爲單元測試DLL NO誤差
Unpacking debugging symbols for VideoSource.dll to \path
Checking for VideoSource.pdb...
Checking for videosource.pdb...
,然後製成的Java類嘗試實例天然(C++)類:
// VideoSource() is implemented in C++ and wrapped with JNI,
// wrapper files were generated with SWIG
_videoProvider = new generated.VideoSource();
當Java類作爲JUnit測試(提取視頻數據)執行時,這起作用。
當我將Java類作爲OSGi服務啓動時,相同的東西不起作用。
基本上,執行相同的代碼。該DLL仍然加載成功,但高於現在顯示本機(C++)類的實例拋出異常:
java.lang.UnsatisfiedLinkError: generated.VideoSourceSWIGJNI.new_VideoSource()J
當我啓動Java類作爲一個OSGi服務,而不是執行它作爲一個有什麼不同JUnit測試?我能做些什麼來使它工作?
背景
generated.VideoSource()是
public VideoSource() {
this(VideoSourceSWIGJNI.new_VideoSource(), true);
}
VideoSourceSWIGJNI.new_VideoSource()是
public final static native long new_VideoSource();
C++實現
VideoSource::VideoSource() {
// init frame count
m_frame_cnt = 0;
[..]
}
那麼,它不會因爲某些原因找到dll。你有沒有搜索過OSGi +本地庫?那裏有一些文件,AFAIK。你有什麼嘗試? – Puce 2013-04-05 13:27:07