私は奇妙な問題に遭遇しました。短いものを維持するには、次のActivity2は割り当て意向により、現在のフレームのアドレスを送信Android + OpenCVのSIGSEGV
、
Activity1プレビューフロントカメラとユーザーのクリックでActivity2を開始:私は2つの活動でのOpenCVを利用してAndroidアプリを書きました指定されたアドレスのフレームのMatクローン型のローカルフィールドであり、ユーザーはそれを簡単に操作できます(つまり、HSV色空間でinRangeメソッドを実行する)。 MatはImageViewに表示されたBitmapに変換されます。これはActivity2の開始時(元のキャプチャされたフレームの場合)およびSeekBarの各ユーザが操作した後に発生します。
Activity1はActivity2の親です。したがって、BackボタンをクリックするとActivity1が再開されます。 そして今は奇妙な部分(複数可)来る:libc: Fatal signal 11 (SIGSEGV)
で
1)いくつかの時間後(1分未満)Activity1クラッシュを、 - Activity2が開始されることはありませんときに、それが起こらない想像できるよう
2)単にアクティビティ1に戻って再度クリックしてActivity2を再起動した場合、OnCreate()や他のメソッドが呼び出され、MatからBitmapへの変換が実行されたときに同じ致命的なシグナルエラーでアプリケーションがクラッシュする:
Utils.matToBitmap(mCapturedFrame, bm);
だから、 eアクティビティを再起動した後、OpenCVの関数が呼び出されています。最良の部分は、mCapturedFrame exsistsであり、上記の方法は、OpenCVライブラリをロードした後にと呼ばれます。さらに、私はローカルで作成されたMatsと、キャプチャされたフレームMatを含むフィールド(Activity2から戻るとき)をrelease()します。エラーは、Activity1の場合はメモリリークのように見えますが、どこですか?
私がここで間違っていることを本当に見ることができず、何か提案がありがたくなるでしょう。 http://speedy.sh/RMPKH/thesis.zip
ありがとうございます。申し訳ありません、私はとても遅く書いています。不幸にも、ソリューションが機能するかどうかを確認することはできませんが、分析したところで問題はないようです。 私は、ボタンの機能を無効にすることで問題を処理しました(アクティビティXML設定から「親アクティビティ」プロパティを削除しました)。 – przemulala