我正在尝试在 ubuntu 12.4 中安装 sikuli
遵循以下站点中提到的步骤
http://www.verious.com/tool/installing-sikuli-automation-tool-on-ubuntu-11-10/
ubuntu中安装的java是
~$ java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
sikuli-ide 已成功加载,当我尝试在屏幕上捕获图像时出现以下错误
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: /home/ushusadmin/sikuli/Sikuli-IDE/libs/libVisionProxy.so: libml.so.2.1: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1851)
at java.lang.Runtime.load0(Runtime.java:795)
at java.lang.System.load(System.java:1062)
at com.wapmx.nativeutils.jniloader.NativeLoader.loadLibrary(NativeLoader.java:44)
at org.sikuli.script.TextRecognizer.(TextRecognizer.java:24)
at org.sikuli.ide.NamingPane.getFilenameFromImage(NamingPane.java:55)
at org.sikuli.ide.CaptureButton.update(CaptureButton.java:149)
at org.sikuli.script.CapturePrompt.notifyObserver(CapturePrompt.java:44)
at org.sikuli.script.CapturePrompt$1.mouseReleased(CapturePrompt.java:197)
at java.awt.Component.processMouseEvent(Componen
t.java:6505)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Window.processEvent(Window.java:2022)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(
Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
我怎样才能摆脱这个错误。我花了我的时间来纠正这个错误并且真的受够了:-(专家请帮助我
最佳答案
我在您的堆栈跟踪中注意到了这一点:Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: /home/ushusadmin/sikuli/Sikuli-IDE/libs/libVisionProxy.so: libml.so.2.1: cannot open shared object file: No such file or directory
关于找不到 libml.so.2.1 的投诉让我怀疑您使用的是旧版本的 Sikuli。
因此,我建议使用最新的 Sikuli 版本 (1.0.1),并确保您至少安装了 OpenCV 2.4.0。
请注意,Sikuli 1.0.1 依赖于 OpenCV 2.4.0,而您链接的指南来自 2.3.0 可接受的日子。
我会尝试删除 libcv-dev 包的 2.3 版本(如果你有的话),而是从 opencv2.4 PPA repo 安装 libcv-dev:
sudo add-apt-repository ppa:gijzelaar/opencv2.4
另外,我注意到 Sikuli 人已经发布了一个特殊的 libVisionProxy.so 版本供下载;不确定它是否旨在帮助像您这样的系统,但如果使用 Sikuli 1.0.1 和 OpenCV 2.4.0 没有帮助,则值得一试。
有问题的文件是
Sikuli-1.0.1-Supplemental-LinuxVisionProxy.zip
在 https://launchpad.net/sikuli/+download最后,如果有帮助,这里是我用来在 Ubuntu 12.04 上启动和运行 Sikuli 1.0.1 的完整步骤:
sudo add-apt-repository ppa:gijzelaar/opencv2.4
sudo apt-get update
sudo apt-get libcv-dev
或者,您可以按照以下步骤通过从源代码构建/安装 OpenCV 2.4.0 来实现相同的目的:
http://karytech.blogspot.com/2012/05/opencv-24-on-ubuntu-1204.html
请注意,当我尝试这样做时,我省略了安装 QT 包的步骤,并在构建 OpenCV 时从我的 cmake 命令中删除了“-D WITH_QT=ON”。
sudo apt-get install libtesseract3
cd ~/SikuliX && java -jar sikuli-setup.jar
我选择了“Pack 1”选项并让安装程序正常进行。
此外,我发现使用“runIDE -r”选项运行 .sikuli 项目对于解决依赖问题非常有帮助;与在 IDE 中运行脚本相比,这似乎会导致有关错误的更多信息。例如:
~/SikuliX/runIDE -r foo.sikuli
以下是我的操作系统和 JRE 环境详细信息:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.3 LTS
Release: 12.04
Codename: precise
$ java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
关于ubuntu - ubuntu 中的 Sikuli 自动化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22651721/