2011-07-26 5 views
15

GithubのソースからOpenNIとSensorをビルドし、Niteをインストールしました。私は2.6.39カーネルとJavaの異なるバージョン、Debian上でLubuntu 11.04とOpenNI unstableとavin2 Sensorを使った別のコンピュータでこれをテストしました。同じ結果です。私も、あらかじめ作成されたバイナリでテストしました。OpenNI UserTracker.javaサンプルクラッシュ

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

は誰にもこの問題が発生したか、おそらく間違っている可能性が何を見ていますか?

編集:私は、起動時にこれらの警告は、C++および.NETのサンプルが、ちょうど は最後のものがあること持ってSamplesConfig.xmlにログオン、およびJavaサンプル 出力ました - それは私が見つける唯一の違いですログに記録する。

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... 

EDIT2:私は今、恵みを設定し、ここでは詳細ログファイルだとLubuntu 11.04でOpenNI、NITEとAVIN2のSensorKinectの最新不安定なバージョンからダンプしました:http://pastebin.com/anG18agphttp://pastebin.com/mAkf0G6M

+1

は最新の1.6リリースを使用して、太陽のJVMを使用してみましたが? – sbridges

+0

はい、私は現在sun java 1.6.0_26を使用していますが、openjdk 6と7も試してみました...問題は、正しく読み込まれない.soファイルにあります。 C++サンプルとJavaサンプルの間の詳細ログを見つけることができます。 – HairyFotr

答えて

6

誤りがありますorg_OpenNI_NativeMethods.cppで

読み取る:OpenNIのJavaラッパー・クラスで

void XN_CALLBACK_TYPE PoseDetectionHandler(XnNodeHandle hNode, const XnChar* strPose, XnUserID user, void* pCookie) 
{ 
    CallbackCookie* pCallback = (CallbackCookie*)pCookie; 
    JNIEnvSupplier supplier; 
    jstring jPose = supplier.GetEnv()->NewStringUTF(strPose); 
    supplier.GetEnv()->CallVoidMethod(pCallback->obj, pCallback->mid, jPose, user); 
    supplier.GetEnv()->ReleaseStringUTFChars(jPose, strPose); 
} 

しかし、あなたはsのではありませんnewStringUTFに割り当てられた文字列をreleaseStringUTFするupposed ...ので、それがクラッシュした... は、例えばここを参照してください:http://www.velocityreviews.com/forums/t144581-crash-while-calling-releasestringutfchars-for-newstringutf-string.html

はOpenNI.jni.dllを構築..リリースライン...コメントを解除し、ソースコードを取得し、 usetracker.javaが実行されます!

敬具、 デビッド

+0

私はOpenniソースコードを構築しようとしましたが、それは私に奇妙なエラーを与えます。このOpenNI.jni.dllはありますか?それを私に郵送することができますか?私はwin64を使用しています。 – cooltechnomax

+0

cooltechnomax、私はあなたを助けることができません... OpenNIグループの質問とエラーをhttp://groups.google.com/group/openni-devに投稿してみてください。もっと多くの人が読んでいます。 – HairyFotr

+0

ああ、固定ラッパーのpullrequestはgithubで作成されていますが、まだ閉じていません:https://github.com/OpenNI/OpenNI/pull/35 – HairyFotr

関連する問題