当前位置: 首页 > 知识库问答 >
问题:

如何使用Java设置Logitech的LED照明SDK?

段干飞翮
2023-03-14

当a使用Logitech的LED SDK制作一个简单的测试程序并运行它时,我会收到一个不满意的链接错误消息:

C:\Users\cwa38\AppData\Local\Temp\LogitechLedJNI.dll4587977834410494064: Can't find dependent libraries

到目前为止我所做的:

  1. 我从下载了SDKhttps://www.logitechg.com/en-us/innovation/developer-lab.html
  2. 我提取了它
  3. 我在NetBeans中创建了一个新的Java项目
  4. 我添加了logiled。jar文件作为依赖项添加到我的新项目中
  5. 我创建了一个新类,并从文档中复制了简单的测试程序(代码如下)
  6. 我单击了“run”,得到了上面描述的未满足的链接错误

我看到SDK下载带有一些. dll文件和一个. lib文件,但是我不知道如何处理这些文件。包含的留档绝对没有提到它们。

我做错了什么?

这是我的代码:

import com.logitech.gaming.LogiLED;

public class Main {
    public static void main(String[] args) {
        LogiLED.LogiLedInit();
        LogiLED.LogiLedSetLighting(100, 0, 0);
        LogiLED.LogiLedShutdown();
    }
}

这是罗技公司的完整文档(是的,确实很短):

以下步骤显示如何使Logitech SDK与Java程序一起工作。请根据您的游戏调整这些步骤,使其发挥作用。

步骤

  1. 复制SDK的Lib\logiled。jar到项目目录
  2. 配置项目的Java构建路径以包含logiled。罐子
  3. 在Java代码中从JNI包装器调用函数,如下所示:
    import com.logitech.gaming.LogiLED;

    LogiLED.LogiLedInit();
    LogiLED.LogiLedSetLighting(red,blue,green);
    LogiLED.LogiLedShutdown();

我得到的错误的完整堆栈跟踪如下:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\cwa38\AppData\Local\Temp\LogitechLedJNI.dll4587977834410494064: Can't find dependent libraries
    at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
    at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:384)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:228)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:170)
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2389)
    at java.base/java.lang.Runtime.load0(Runtime.java:755)
    at java.base/java.lang.System.load(System.java:1953)
    at com.logitech.gaming.LogiLED.<clinit>(LogiLED.java:205)
    at javaapplication1.JavaApplication1.main(JavaApplication1.java:20)
C:\Users\cwa38\AppData\Local\NetBeans\Cache\12.4\executor-snippets\run.xml:111: The following error occurred while executing this line:
C:\Users\cwa38\AppData\Local\NetBeans\Cache\12.4\executor-snippets\run.xml:68: Java returned: 1

共有1个答案

梁兴修
2023-03-14

我试图在我的netbean中运行你的项目,但失败了

 project com.cwa380:KeyColors:jar:1.0: logitech:gaming:jar:9.00 was not found in https://repo.maven.apache.org/maven2 during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of central has elapsed or updates are forced

然后我从ant创建了一个新项目,只要您使用的是这个不在maven存储库中的logitech jar,就不需要maven项目。

好消息是,当我运行代码时,我没有得到任何例外。以下输出

当我尝试使用代码完成时,netbeans很好地列出了函数。

以下是我的工具版本

Product Version: Apache NetBeans IDE 12.4
Java: 17; OpenJDK 64-Bit Server VM 17+35-2724
Runtime: OpenJDK Runtime Environment 17+35-2724
System: Windows 10 version 10.0 running on amd64; Cp1252; en_US (nb)
User directory: C:\Users\ozkan\AppData\Roaming\NetBeans\12.4
Cache directory: C:\Users\ozkan\AppData\Local\NetBeans\Cache\12.4

在github我发现https://github.com/larsgrefer/logi-led你可以联系Lars(@larsgrefer),看起来他知道如何使用罗技SDK。

这是我的项目https://github.com/ozkanpakdil/spring-examples/tree/master/JavaApplication1确保您在库的正确路径中添加了logled jar

 类似资料:
  • 基础知识 为了给用户提供操作 GPIO 的通用 API,方便应用程序开发,RT-Thread 中引入了通用 GPIO设备驱动。并提供类似 Arduino 风格的 API 用于操作 GPIO,如设置 GPIO 模式和输出电平、读取 GPIO 输入电平、配置 GPIO 外部中断等。 常用的 PIN 设备的 API 有以下几个: API 描述 rt_pin_mode 设置 GPIO 模式 rt_pin_

  • 有人知道解决这个问题的办法吗?我已经测试了在Modulepath和classpath中添加来自Selenium的外部jar。然而,两者似乎有相同的结果和错误。

  • 问题内容: 很多时候,Java应用程序需要连接到Internet。最常见的示例是在读取XML文件并需要下载其架构时发生的。 我在代理服务器后面。如何设置我的JVM使用代理? 问题答案: 从Java文档(不是 javadoc API)中: http://download.oracle.com/javase/6/docs/technotes/guides/net/proxies.html 设置JVM标

  • 我写了这段代码,用相机拍照,然后将其转换为jpeg文件并将其上传到Parse.com作为ParseFile。 问题是,图片非常小(153 x 204像素),质量非常低。 我需要图片是至少5 MP质量和裁剪到300x300像素。 这是我现在使用的代码。 提前感谢。

  • 问题内容: 如何使用jQuery设置和取消设置Cookie,例如创建一个名为的Cookie 并将其值设置为? 问题答案: 2019年4月更新 Cookie的读取/操作不需要jQuery,因此请不要使用下面的原始答案。 转到https://github.com/js-cookie/js-cookie,然后在其中使用不依赖jQuery的库。 基本示例: 有关详细信息,请参见github上的文档。 参见

  • 问题内容: 我想限制JVM使用的最大内存。注意,这不仅是堆,我想限制此过程使用的总内存。 问题答案: 使用参数。在数字后面使用M或G分别表示字节的兆位和千兆位。表示最小值和最大值。