2017-03-15 105 views
0

我正在嘗試將opencv添加到數據流項目中。從我讀過的內容來看,你所需要做的就是添加opencv jar,並將其上傳到分段存儲桶中。但我知道不能全部(大多數都不起作用)。當我嘗試將我的代碼作爲本地機器上的直接管道運行時,出現以下錯誤。如何添加依賴到谷歌數據流?


Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.videoio.VideoCapture.VideoCapture_1(Ljava/lang/String;)J at org.opencv.videoio.VideoCapture.VideoCapture_1(Native Method) at org.opencv.videoio.VideoCapture.<init>(VideoCapture.java:40)


我看了這個帖子, How do I add Java dependencies to a Google Dataflow project?,但所有它說,它的jar添加到classpath中。哪個不起作用。我失去了明顯的感覺。

+0

「直接管道」你的意思是你在你的機器上使用內存運行器在本地運行管道?你能否證實這個相同的類可以訪問您的main()方法? (如果不是的話,那麼問題是在你的程序正在啓動,而不是數據流的方式),我在本地運行它 – jkff

+0

,是的。但也嘗試在Google上運行。是的,它是可達的。管道運行甚至執行第一次轉換。但是,我得到這個錯誤在第一次通話的OpenCV – Sdude13

回答

1

UnsatisfiedLinkError是: 當Java虛擬機無法找到一個方法的適當本地語言定義聲明本地拋出。 https://docs.oracle.com/javase/7/docs/api/java/lang/UnsatisfiedLinkError.html

由於在本地構建/運行時發生該問題,因此與數據流服務或上載到臨時存儲桶無關。

快速谷歌搜索「的OpenCV UnsatisfiedLinkError」提出了許多成果。最常見的反應是這條線丟失:

static { 
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME); 
}