2016-04-21 79 views
0

后重置相机时,我目前有我想录制视频,用下面的方法来初始化相机的应用程序:当我试图阻止Android的 - 致命信号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; 
    } 
相关问题