【问题标题】:PI4J - Unable to load [libpi4j.so] using pathPI4J - 无法使用路径加载 [libpi4j.so]
【发布时间】:2015-06-25 14:44:52
【问题描述】:

我在 MacOS 上使用 NetBeans 来开发使用 PI4J 的应用程序。一切看起来都很好,但我收到下面的错误,说 PI4J 无法加载。有谁知道如何解决这个问题?

abr 18, 2015 3:02:30 PM com.pi4j.util.NativeLibraryLoader load
SEVERE: Unable to load [libpi4j.so] using path: [/lib/libpi4j.so]
java.lang.UnsatisfiedLinkError: /private/var/folders/0x/6rph2scs0f544b7xwkfhzkcw0000gn/T/libpi4j3968879292977354112.so: dlopen(/private/var/folders/0x/6rph2scs0f544b7xwkfhzkcw0000gn/T/libpi4j3968879292977354112.so, 1): no suitable image found.  Did find:
    /private/var/folders/0x/6rph2scs0f544b7xwkfhzkcw0000gn/T/libpi4j3968879292977354112.so: unknown file type, first eight bytes: 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1937)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1822)
    at java.lang.Runtime.load0(Runtime.java:809)
    at java.lang.System.load(System.java:1086)
    at com.pi4j.util.NativeLibraryLoader.loadLibraryFromClasspath(NativeLibraryLoader.java:143)
    at com.pi4j.util.NativeLibraryLoader.load(NativeLibraryLoader.java:92)
    at com.pi4j.wiringpi.Gpio.<clinit>(Gpio.java:174)
    at com.pi4j.io.gpio.RaspiGpioProvider.<init>(RaspiGpioProvider.java:51)
    at com.pi4j.io.gpio.GpioFactory.getDefaultProvider(GpioFactory.java:106)
    at com.pi4j.io.gpio.impl.GpioControllerImpl.<init>(GpioControllerImpl.java:54)
    at com.pi4j.io.gpio.GpioFactory.getInstance(GpioFactory.java:89)
    at hellorasp.HelloRasp.main(HelloRasp.java:31)

Exception in thread "main" java.lang.UnsatisfiedLinkError: com.pi4j.wiringpi.Gpio.wiringPiSetup()I
    at com.pi4j.wiringpi.Gpio.wiringPiSetup(Native Method)
    at com.pi4j.io.gpio.RaspiGpioProvider.<init>(RaspiGpioProvider.java:51)
    at com.pi4j.io.gpio.GpioFactory.getDefaultProvider(GpioFactory.java:106)
    at com.pi4j.io.gpio.impl.GpioControllerImpl.<init>(GpioControllerImpl.java:54)
    at com.pi4j.io.gpio.GpioFactory.getInstance(GpioFactory.java:89)
    at hellorasp.HelloRasp.main(HelloRasp.java:31)

【问题讨论】:

标签: java macos netbeans raspberry-pi pi4j


【解决方案1】:

只需将 libpi4j.so 复制到 RPI 上的项目 lib 文件夹中

【讨论】:

    【解决方案2】:

    /lib/libpi4j.so 文件将不起作用,因为它仅针对 Raspberry Pi 而不是任何其他硬件。

    【讨论】:

      【解决方案3】:

      假设 OP 在树莓派上运行他的代码,我在 pi 运行代码上也遇到了这个错误,该代码控制了截至 2018 年 2 月工作的伺服系统,但在 2018 年 7 月产生了这个确切的错误。我发现 pi4j 1.2 发行版的一个变化需要你手动安装wiringpi库

      所以我得到了那个确切的错误,按照这些说明操作,我的伺服系统再次移动:

      http://wiringpi.com/download-and-install/

      【讨论】:

        【解决方案4】:
        sudo apt-get remove wiringpi -y
        sudo apt-get --yes install git-core gcc make
        cd ~
        git clone https://github.com/WiringPi/WiringPi --branch master --single-branch wiringpi
        cd ~/wiringpi
        sudo ./build
        

        这是取自 pi4j 我遇到了这个问题,当我在终端中执行这些行时......一切都很完美

        【讨论】:

        • 官方 WiringPi 项目已被弃用,并且缺乏对 Raspberry Pi 4/400/CM4 的支持。在此答案中提到的存储库中的 GitHub 上提供了一个 fork,并进行了一些改进以解决此问题。更多信息请访问pi4j.com/1.4/dependency.html
        【解决方案5】:

        我在使用 Raspberry P4、java 11 和 pi4j v2 时遇到了同样的问题。 我解决了直接从树莓派下载pigpio库

        sudo apt-get install pigpio
        

        安装库后,jar 运行良好

        【讨论】:

        • 似乎我们在 Pi4J 网站上缺少一些关于需要安装 pigpio 本身的文档,因为这只需要在某些情况下完成。我想了解您的方法 Roberto,您采取了哪些步骤等,以便我可以扩展文档。如果您可以在这里或通过github.com/Pi4J/pi4j-v2/discussions 分享,那就太好了
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-25
        相关资源
        最近更新 更多