首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kinect UnsatisfiedLinkError: UnsatisfiedLinkError

Kinect UnsatisfiedLinkError: UnsatisfiedLinkError
EN

Stack Overflow用户
提问于 2012-10-13 17:33:58
回答 1查看 3.9K关注 0票数 1

我试着按照格雷格·博伦斯坦的“让事情看出来”的步骤去做。http://www.amazon.co.uk/Making-Things-See-Processing-MakerBot/dp/1449307078

虽然我以前使用过Kinect,但我使用的是Windows,而不是它建议的OpenNI库。因此,我按照建议卸载了SDK和设备驱动程序。但是我很难让OpenNI使用这些例子。当试图在处理中运行c#示例(http://www.processing.org/download/)时,我收到了以下错误:

SimpleOpenNI.SimpleOpenNIJNI.swig_module_init()V :UnsatisfiedLinkError

其中有以下信息:

无法加载SimpleOpenNI库(SimpleOpenNI32):java.lang.UnsatisfiedLinkError:无法找到依赖库,验证是否正确安装了SimpleOpenNI。线程“动画线程”中的异常: SimpleOpenNI.SimpleOpenNIJNI.swig_module_init()V at SimpleOpenNI.SimpleOpenNIJNI.swig_module_init(Native方法) SimpleOpenNI.SimpleOpenNIJNI.(SimpleOpenNIJNI.java:1575) at SimpleOpenNI.ContextWrapper.(ContextWrapper.java:54) at SimpleOpenNI.SimpleOpenNI.(SimpleOpenNI.java:212) at DepthImage.setup(DepthImage.java:41 at processing.core.PApplet.handleDraw(PApplet.java:2103) )在processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:190) at processing.core.PApplet.run(PApplet.java:2006) at java.lang.Thread.run(Thread.java:662)

在互联网上搜索了几次之后,我还没有找到解决这个问题的方法。我已经看到它表明我只需要在这里重新启动窗口:http://code.google.com/p/simple-openni/issues/detail?id=27,尽管我已经尝试了两次,但仍然有错误。

注意:我宁愿使用,也不愿进行处理,尽管我不知道如何导入库,也不知道是否应该引用它。我非常习惯于编码和开发,但没有那么多地使用像这样的库。

EN

回答 1

Stack Overflow用户

发布于 2012-10-13 19:27:39

我在WindowsXP上使用了处理WindowsXP,它在我的机器上工作得很好。这是我的配置:

WinXP SP3与OpenNI开发32位(OpenNI1.5.4.0,Nite1.5.2.21,avin2 SensorKinect5.1.2.1)和处理1.5.1与SimpleOpenNI 0.20 (也用0.27测试)

AFAIK SimpleOpenNI使用JNI与OpenNI库和驱动程序进行通信,因此上面的错误可能来自两个地方:

  1. OpenNI未正确安装
  2. SimpleOpenNI库没有正确安装

检查OpenNI是否正确安装的最简单的方法是在它附带的示例上运行,比如NiViewer (应该在C:\Program Files\OpenNI\Samples\Bin\Debug中)。如果不运行,这是一个很好的迹象,有问题的OpenNI安装。

我注意到在SimpleOpenNI项目页面上有传感器驱动程序/OpenNI/Nite安装程序,但我不记得在我的机器上使用过它们。我手动安装了:

  1. OpenNI 32位不稳定
  2. Nite 32位不稳定
  3. avin2 2兼容的SensorKinect驱动程序

按照上面的顺序。尝试卸载/清理,然后重新安装并尝试OpenNI示例。

如果OpenNI/Nite/SensorKinect安装正确,并且可以运行示例,则在Java/JNI端出现问题。检查以下内容:

  1. SimpleOpenNI文件夹位于%homepath%\My Documents\Processing\libraries
  2. OpenNI系统变量(OPEN_NI_BIN,OPEN_NI_INCLUDE,OPEN_NI_INSTALL_PATH,OPEN_NI_LIB)是在Windows环境变量中设置的

您还注意到,您宁愿使用Visual而不是处理。我同意,处理并不是IDE中最好的(它的目标是初学者,并意味着最小/简单的AFAIK)。如果您想在一个更好的环境中继续使用更好的代码,我建议将月食Proclipsing插件结合使用。Eclipse是一个不错的IDE (自动完成/重构/等等)而且,Proclipsing使管理处理项目(包括使用外部库(如SimpleOpenNI)的项目更为容易)。

想到的另一件事是使用OpenFrameworks与VisualStudioofxOpenNI加载项。OpenFrameworks有点类似于处理,ofxOpenNI包装器有一些很好的特性,但是您可能需要将处理/SimpleOpenNI语法移植到/ofxOpenNI。

就我个人而言,我认为SimpleOpenNI很容易开始(这是我见过的最优秀的OpenNI包装器)--如果您刚刚开始使用Kinect开发,并且想要很容易地遵循让人看到的例子,那么坚持处理(不管有没有eclipse)和SimpleOpenNI可能会更简单。这取决于您是如何处理这一问题的:只使用现有的示例代码或花费额外的精力来移植它将更加简单,但更多地了解OpenNI本身是如何工作的(通过使用包装器/“训练轮”)。

这个想法是以一种最舒适的方式开始。SimpleOpenNI确实使事情变得更简单,但是如果您不习惯于处理/ OpenNI,并且是一名经验丰富的开发人员,那么您可能会想出如何使用这些文档在C#中使用原始的Java。

您可以注意到,C#示例也随OpenNI一起提供。例如,C:\Program Files\OpenNI\Samples\SimpleViewer.net。我建议要么将SimpleViewer.net.exe从obj\x86\Debug文件夹移回obj,要么更改MainWindow.cs中SAMPLE_XML_FILE的路径

有点离题:可能实际上可以使用官方的Kinect SDK和OpenNI使用桥梁库,但我自己还没有使用它,所以不能从经验中提供建议。

HTH

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12875212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档