我已经从Github上构建了OpenNI和Sensor的源代码,并安装了Nite。我在带有2.6.39内核的Debian上以及不同版本的Java上进行了测试,还在另一台带有Lubuntu 11.04的计算机上进行了测试,同样使用了OpenNI不稳定版和avin2 Sensor - 结果相同。我也尝试过使用预编译的二进制文件。
C++和.NET中的UserTracker示例运行正常,但是当我执行校准动作时,UserTracker.java会检测到我的轮廓,然后JVM崩溃。这是崩溃前的输出:
New user 1
Pose Psi detected for 1
我已经尝试过修改代码,但是找不到导致它崩溃的那段代码——PoseDetectedObserver.update
没有出错。这里是有关该示例的链接:https://github.com/OpenNI/OpenNI/blob/master/Samples/UserTracker.java/org/OpenNI/Samples/UserTracker/UserTracker.java 是否有其他人遇到了这个问题,或者知道可能出了什么问题?
编辑:我已经在SamplesConfig.xml中打开了日志记录,Java示例在启动时输出这些警告,而C++和.NET示例只有最后一个 - 这是我在日志中找到的唯一区别。
125 INFO OpenNI version is 1.3.2 (Build 3)-Linux-x86 (Jul 28 2011 03:43:14)
141 INFO Filter Info - minimum severity: WARNING, masks: ALL
2482 WARNING Failed loading lib: /usr/lib/libXnVFeatures_1_3_0.so: undefined symbol: xnOSStrFormat
2489 WARNING Failed to load '/usr/lib/libXnVFeatures_1_3_0.so' - missing dependencies?
4080 WARNING Failed loading lib: /usr/lib/libXnVHandGenerator_1_3_0.so: undefined symbol: xnOSStrFormat
4087 WARNING Failed to load '/usr/lib/libXnVHandGenerator_1_3_0.so' - missing dependencies?
7581 WARNING Open named event: failed to open key file (2) - event might not exist...
编辑2:我现在设置了一份悬赏,并附上了最新不稳定版本的OpenNI、NITE和avin2的SensorKinect在Lubuntu 11.04上产生的详细日志文件和转储:http://pastebin.com/anG18agp http://pastebin.com/mAkf0G6M