3

尝试调用以下start()实例的方法时出现此错误FFmpegFrameGrabber

java.lang.UnsatisfiedLinkError: org.bytedeco.javacpp.avutil
    at java.lang.Class.classForName(Native Method)
    at java.lang.Class.forName(Class.java:309)
    at org.bytedeco.javacpp.Loader.load(Loader.java:390)
    at org.bytedeco.javacpp.Loader.load(Loader.java:358)
    at org.bytedeco.javacpp.avformat$AVFormatContext.<clinit>(avformat.java:2539)
    at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:383)
    at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:377)

这些是我根据项目javacppjavacv的 READMES 所指的依赖项:

compile group: 'org.bytedeco', name: 'javacpp', version: '1.0'
compile group: 'org.bytedeco', name: 'javacv', version: '1.0'

我没有向项目中添加任何 .so 文件,但我希望这些文件会附带依赖项。当我之前尝试添加它们时,我开始收到重复文件的 gradle 错误,所以我假设它们带有依赖项。

我认为发生的事情是无论出于何种原因它都无法加载 .so 文件,但我不知道如何解决这个问题。

我尝试设置systemPropertyGitHub 自述文件中提到的依赖项,如下所示:

task execute(type: JavaExec) {
    systemProperty "platform.dependencies", true
}

它没有帮助。

为什么会出现此错误以及可以采取哪些措施来处理它?

对此问题的任何指导将不胜感激。总体目标是使用 FFmpegFrameGrabber 裁剪用户使用其设备拍摄的视频。我对所有解决方案持开放态度。

4

0 回答 0