2016-04-21 10 views
0

を記録した後、カメラを停止し、リセットするとき、私は現在、私はカメラを初期化するには、次の方法で、ビデオを録画しようとしていますアプリを持っている:私は停止しようとするとアンドロイド - 致命的なシグナル11ビデオ

​​

surfaceDestroyedが呼び出されたときに、カメラや、私は次のメソッドを呼び出します。

private void resetCamera() { 
    mMediaRecorder.stop(); 
    mMediaRecorder.reset(); 
    mMediaRecorder.release(); 
    mCamera.release(); 

    mCamera = null; 

    try { 
     initRecorder(mHolder.getSurface()); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

しかし、どこかにこのコードでは、私は致命的なシグナル11エラーを取得しています。明らかに、コードはメモリの一部に不正にアクセスしようとしています。

このエラーを回避するにはどうすればいいですか?ここで

は私が録音を停止するときにビデオ録画を開始してからLogcatダンプです:後

D/dalvikvm: GC_FOR_ALLOC freed 1309K, 27% free 7434K/10168K, paused 9ms, total 9ms 
I/dalvikvm: Could not compile trace for Ljava/util/Arrays;fill, offset 5 
I/dalvikvm: ++++++++++++++++++++++++++++++++++++++++++++ 
I/dalvikvm: JIT_INFO: ME Issues while compiling trace Ljava/util/Arrays;fill, offset 5 
I/dalvikvm: The trace provoked a spill. 
I/dalvikvm: Trying less registerization from 1 to 0 
D/dalvikvm: GC_FOR_ALLOC freed 1415K, 27% free 7438K/10168K, paused 10ms, total 10ms 
A/libc: Fatal signal 11 (SIGSEGV) at 0x00000010 (code=1), thread 13774 (arch.treadmill3) 
+0

ポストエラーの完全なログが(私はそれがJavaのトレースではないですけど、時にはそれの他の情報は便利です)。 –

+0

私はまったく同じ問題を抱えています。あなたはそれを解決しましたか? – YYamil

答えて

0

をmMediaRecorder.release(); mMediaRecorder = nullを記述する必要があります。 release()メソッドにはバグがほとんどないようです。このよう :

if (mMediaRecorder != null) { 
     mMediaRecorder.stop(); 
     mMediaRecorder.reset(); 
     mMediaRecorder.release(); 
     mMediaRecorder = null; 
    } 
関連する問題