Error: "UnsatisfedLinkError: com.aparapi.internal.jni.OPENCLJNI.getPlatforms()" JNI configuration

Error: "UnsatisfedLinkError: com.aparapi.internal.jni.OPENCLJNI.getPlatforms()" JNI configuration

我会尝试在 MAC OS 上执行基于 Aparapi 的示例脚本。我正在使用最新版本的 Eclipse,但是当我执行 DeviceInfo 示例以获取所有可用设备时:

public class DeviceInfo {
    public static void main(String[] args) {
        KernelPreferences preferences = KernelManager.instance().getDefaultPreferences();
        System.out.println("-- Devices in preferred order --");
        for (Device device : preferences.getPreferredDevices(null)) {
            System.out.println(device);
        }
    }
}

它生成

java.lang.UnsatisfiedLinkError: com.amd.aparapi.OpenCLJNI.getPlatforms()Ljava/util/List"

有没有人可以帮助我?

为 Mac (x86_64) 构建本机程序集并将其添加到 jniLibs 中;这是 source code.

java.lang.UnsatisfiedLinkError 一般表示找不到本地程序集。

尽管 macOS Mojave 10.14.4 不直接支持 OpenCL,我已经执行了 Aparapi Framework。

我发现问题出在 Aparapi 库上。特别是,为了解决生成的错误,我遵循了以下步骤:

  • 为 AMD 显卡下载此存储库 https://github.com/aparapi/aparapi
  • 打开目录“com.amd.aparapi”并从终端执行

    ant -f build.xml
    

    此命令生成此库的 .jar 文件

  • 在 Eclipse 中将生成的 jar 添加到项目的类路径中

  • 为您的 OS 添加特定的 Aparapi 库:

    <your-workspace-path>/<your-project>/src/main/resources/osx/
    
  • 在执行代码之前,在“运行配置”中添加VM参数

    -Djava.library.path=<your-workspace-path>/<your-project>/src/main/resources/osx/
    
  • 执行你的脚本!