gpt4 book ai didi

java - 线程 "main"java.lang.NoClassDefFoundError 中出现异常无法初始化类 org.bytedeco.javacpp.avutil

转载 作者:行者123 更新时间:2023-12-01 09:49:27 25 4
gpt4 key购买 nike

我有一个使用bytedeco/javacv库的java应用程序。

但是当我运行该应用程序时,出现以下异常。

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 中的以下声明

Additionally, we need to either set the javacpp.platform system property (via the -D command line option) to something like android-arm, or set the javacpp.platform.dependencies one to true to get all the binaries for Android, Linux, Mac OS X, and Windows. On build systems where this does not work, we need to add the platform-specific artifacts manually. For examples with Gradle and sbt, please refer to the README.md file of the JavaCPP Presets. Another option available for Scala users is sbt-javacv.

~引用GitHub .

我添加了参数 -Djavacpp.platform.dependency="true",但我仍然收到异常。我不确定是什么导致了这个问题,我在使用 C++ 包装器方面经验很少。

PS:我没有在我的机器上安装任何 c++ 依赖项/库或 open-cv。 所有的解决方案都与 Android 相关,我在我的 java 相关应用程序中遵循这些解决方案并没有太多运气。

最佳答案

添加以下依赖项解决了该问题。

        <!-- http://mvnrepository.com/artifact/org.bytedeco/javacv -->
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv</artifactId>
<version>1.2</version>
</dependency>

<!-- http://mvnrepository.com/artifact/org.bytedeco/javacpp -->
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacpp</artifactId>
<version>1.2.1</version>
</dependency>


<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>opencv</artifactId>
<version>3.1.0-1.2</version>
</dependency>

<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>ffmpeg</artifactId>
<version>3.0.2-1.2</version>
</dependency>

关于java - 线程 "main"java.lang.NoClassDefFoundError 中出现异常无法初始化类 org.bytedeco.javacpp.avutil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37698855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com