更新日: 2016-11-15 (火) 20:50:38 (311d)

:Android

Android Fatal signal 11 SIGSEGV というエラーが出て強制終了する

昨今Androidで動画を撮るというプロジェクトにまい進している私ですが(Android ビデオを録画するサンプルコード)、謎のエラーで強制終了してしまうというエラーにかなりはまってしまいました。

Fatal signal 11 (SIGSEGV) at 0x00000010 (code=1), thread 30664

というエラーが出て、いきなり落ちちゃうんですねー。
使っていた端末は、Galaxys3aです。

SIGSEGV(しぐせぐぶ??)とは、セグメンテーション違反の際におこるエラーで、Wikipediaさんに詳しいです。
セグメンテーション違反

StackOverflowさんにもいくつか記事がありますが、Javaが吐くエラーではないので、ファームウェアとかの問題だ、という話もあります。。。

http://stackoverflow.com/questions/11274341/android-sigsegv-error-when-recording-audio

「どうすればええのんや…」

と悩み、まずは色々とtry~chatchでエラー箇所を捕捉しようと考えましたが、セグメンテーション違反でJavaのエラーではないので、try~catchでは捕捉できませんでした。

デバッグをしてみたところ、落ちるタイミングを発見。

mrec = new MediaRecorder();

//中略

mrec.stop(); //このstopでSIGSEGVエラー
mrec.reset();
mrec.release();

どうやら既にストップしていたmrecをstop()させていたことが原因のようです。

フラグを作って、stopしたかどうかを判断し、一度ストップしたmrecをもうstopさせないようにしたら治りました!!


選択肢 投票
役に立った 2  
役に立たなかった 0  
どちらでもない 0  
このページが参照された数
Total: 4299, 今日: 10, 昨日: 0

でじうぃきは神奈川県横浜市の位置情報システム・スマホアプリ開発の株式会社オンラインコンサルタントが運営しています。
投稿
トップ   このページを編集する 再編集不可にする 差分 バックアップ 添付 複製 名前変更 リロード   新しいページを作る 一覧 検索する 最新の更新   ヘルプ   最終更新のRSS
Last-modified: 2016-11-15 (火) 20:50:38 (311d)