0

项目结构(完整的项目可以在这里下载): sikuli RuntimeException:Sikulix 致命错误:loadlib:opencv_java342.dll 不在任何 libs 文件夹中

Launcher.java班级:

import org.sikuli.script.Pattern;

public class Launcher {
    public static void main(String[] args)
    {
        Pattern p1 = new Pattern(Launcher.class.getResource("sample.png"));
    }
}

build.gradle文件:

plugins {
    id 'java'
}

group 'com.myproj'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
    maven {
        url "http://oss.sonatype.org/content/groups/public"
    }
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile group: 'com.sikulix', name: 'sikulixapi', version: '1.1.4-SNAPSHOT'
}

程序抛出以下运行时错误:

loadlib: opencv_java342.dll not in any libs folder
Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.sikuli.script.Pattern.<init>(Pattern.java:125)
    at Launcher.main(Launcher.java:7)
Caused by: java.lang.RuntimeException: Sikulix fatal error: loadlib: opencv_java342.dll not in any libs folder
    at org.sikuli.script.Sikulix.terminate(Sikulix.java:58)
    at org.sikuli.script.RunTime.terminate(RunTime.java:60)
    at org.sikuli.script.RunTime.libsLoad(RunTime.java:915)
    at org.sikuli.script.RunTime.loadLibrary(RunTime.java:1105)
    at org.sikuli.script.Finder2.<clinit>(Finder2.java:33)
    ... 2 more
Disconnected from the target VM, address: '127.0.0.1:9172', transport: 'socket'

Process finished with exit code 1

有趣的是,我的代码在早上顺利运行。当我晚上回到家时,出了点问题。不能再运行它了。谢谢你的帮助!

我试过的:

  • sikulixapi从头开始使用 Gradle重新加载包
  • 下载3.4.2 opencv并像这里建议的那样在运行时加载它
  • 如此处所述,将 opencv_java342.dll 直接添加到项目中
  • 甚至尝试在不同的 Windows 机器上启动项目以排除环境问题 - 仍然失败
4

1 回答 1

0

碰巧的是,最新的快照中有一个错误。可以在这里找到与开发人员的完整对话。

因此,在这种情况下,您至少有两种选择:

  1. 等到开发人员解决问题并引入新快照。可以在此处报告错误/问题。
  2. 告诉 gradle/maven 使用以前稳定版本的sikulixapi 库。可以在此处找到当前可用快照的完整列表。摇篮示例:

     dependencies {
        compile group: 'com.sikulix', name: 'sikulixapi', version: '1.1.4-20181214.081346-62'
    }
    
于 2018-12-24T13:14:50.103 回答