Java VLCJ教程:java.lang.UnsatisfiedLinkError

3
我是一个有用的助手,可以为您翻译文本。

我正在尝试使用VLCJ,并卡在他们的第一篇教程上。

这是我的代码:

package vlcj.tutorial1;

import uk.co.caprica.vlcj.binding.LibVlc;
import uk.co.caprica.vlcj.runtime.RuntimeUtil;

import com.sun.jna.Native;
import com.sun.jna.NativeLibrary;

public class Tutorial1A
{
    public static void main(String[] args)
    {
        // Ensure we're using the 32bit jdk.
        System.out.println("jdk version:  " + System.getProperty("sun.arch.data.model") + " bits.");

        NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), "C:/Program Files (x86)/VideoLAN/VLC/sdk/lib");
        Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
    }
}

这是我得到的输出和异常:
jdk version:  32 bits.
Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'libvlc': The specified module could not be found.

at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:169)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:242)
at com.sun.jna.Library$Handler.<init>(Library.java:140)
at com.sun.jna.Native.loadLibrary(Native.java:368)
at com.sun.jna.Native.loadLibrary(Native.java:353)
at vlcj.tutorial1.Tutorial1A.main(Tutorial1A.java:17)

我确认我正在使用32位的jdk和32位版本的VLC。
有什么想法吗?谢谢!

1
我所使用的代码使用{安装路径}/VideoLAN/VLC(即C:/Program Files (x86)/VideoLAN/VLC),但我也会在该文件夹中查找libvlc.dlllibvlcore.dll以确保。 - MadProgrammer
@MadProgrammer,太棒了!非常感谢 :) 如果你想把这个评论放在答案里,我会接受它。 - Felix
2个回答

3

尝试使用{安装路径}/VideoLAN/VLC(例如C:/Program Files (x86)/VideoLAN/VLC)代替。

我在文件夹中查找libvlc.dlllibvlcore.dll,以确保库已安装,但这只是我的个人偏好;)


1
刚刚将 C:/Program Files (x86)/VideoLAN/VLC/sdk/lib 改为 C:/Program Files (x86)/VideoLAN/VLC,然后就可以运行了 :) 再次感谢 @MadProgrammer! - Felix
是的,当我试图让它工作时,我需要进行一些头撞桌子的互动:P - MadProgrammer
1
@PetroSemeniuk 我只是幸运地手头有我的库代码 ;) - MadProgrammer
它显示了某种错误信息:“%1 不是有效的 Win32 应用程序。”这是关于 VLC 的吗? - gumuruh
很难说,我猜你下载的是错误版本(x64而不是x32)。 - MadProgrammer
哦我的天!你是正确的!最近有人在我的x64机器上安装了x32位程序……我现在会将其卸载并安装新的x64位程序 :D - gumuruh

1

路径中尝试使用双反斜杠:

"C:\\Program Files (x86)\\VideoLAN\\VLC\\sdk\\lib"

而不是:

"C:/Program Files (x86)/VideoLAN/VLC/sdk/lib"


我在家已经有一个正在工作的vlcj应用程序。今晚我会深入研究源代码,并回来。 - Petro Semeniuk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接