我有一個java應用程序,它使用bytedeco/javacv
庫。線程「main」中的異常java.lang.NoClassDefFoundError無法初始化類org.bytedeco.javacpp.avutil
但是當我運行該應用程序時,出現以下異常。
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.avutil
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.bytedeco.javacpp.Loader.load(Loader.java:386)
at org.bytedeco.javacpp.Loader.load(Loader.java:354)
at org.bytedeco.javacpp.avformat$AVFormatContext.<clinit>(avformat.java:2719)
at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:391)
at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:385)
at com.diyoron.ai.examples.VideoFrameProccessor.main(VideoFrameProccessor.java:38)
Error getting static method ID of org/bytedeco/javacpp/Loader/putMemberOffset
的代碼如下,
String videoPath = video.getAbsolutePath();
FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(videoPath);
grabber.start();
根據在README.MD
此外,該下面的語句,我們需要可以設置javacpp.platform系統 財產(通過-D命令行選項)類似於 android-arm,或者將javacpp.platform.dependencies之一設置爲true爲 獲取所有binari適用於Android,Linux,Mac OS X和Windows。在 構建系統不起作用的情況下,我們需要手動添加 平臺特定的構件。有關Gradle和 sbt的示例,請參閱JavaCPP預設的README.md文件。 另一個可用於Scala用戶的選項是sbt-javacv。
〜參考文獻GitHub。
我增加了參數-Djavacpp.platform.dependencies =「true」,但我仍然得到異常。我不確定是什麼導致了這個問題,我在使用C++包裝方面的經驗非常少。
PS:我沒有在我的機器上安裝任何C++依賴項/庫或open-cv。 而所有的解決方案都與Android相關,並且在我的java相關應用程序中沒有太多運氣。
C++如何進入圖片? – Ajay
我假設,javacv是opencv的封裝器 –
即使C++語言對此問題沒有任何作用。 – Ajay