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

2

enter image description here

private String recholder = "not";

@Override
    public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
outputFile = Environment.getExternalStorageDirectory().
                    getAbsolutePath() + "/recordingnijez.mp3";

            myRecorder = new MediaRecorder();
            myRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
            myRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
            myRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
            myRecorder.setOutputFile(outputFile);
            addListenerButton();
      }

private void addListenerButton() {
        recbtn = (Button)findViewById(R.id.recbut);
        recbtn.setOnClickListener(new OnClickListener() {

          @Override
          public void onClick(View v) {
              // TODO Auto-generated method stub
              start(v);
          }
        });
     }

public void start(View view){

           if ("recording".equals(recholder)){

          try {

              myRecorder.stop();
              myRecorder.release();
              //myRecorder  = null;
             recbtn.setText(getString(R.string.recBtn));
             recholder="not";
              Toast.makeText(getApplicationContext(), "Stop recording...",
                      Toast.LENGTH_SHORT).show();

           } catch (IllegalStateException e) {
                //  it is called before start()
                e.printStackTrace();
           } catch (RuntimeException e) {
                // no valid audio/video data has been received
                e.printStackTrace();
           }
           }
           else{
              try {
                  File file = new File (Environment.getExternalStorageDirectory() + "/recordingnijez.mp3");

                  if (file.exists()){
                      file.delete();
                      myRecorder.prepare();
                      myRecorder.start();
                      recholder="recording";
                      recbtn.setText(getString(R.string.stopBtn));
                  }
                  else{
                      myRecorder.prepare();
                      myRecorder.start();
                      recholder="recording";
                      recbtn.setText(getString(R.string.stopBtn));
                  }
           } catch (IllegalStateException e) {
              // start:it is called before prepare()
              // prepare: it is called after start() or before setOutputFormat()
              e.printStackTrace();
           } catch (IOException e) {
               // prepare() fails
               e.printStackTrace();
            }

           Toast.makeText(getApplicationContext(), "Start recording...",
                   Toast.LENGTH_SHORT).show();
           }
    }

it has problem when i try to record twice. i dont know how to fix it i tried everything heres the logcat 02-12 09:33:50.471: A/libc(1894): Fatal signal 11 (SIGSEGV) at 0x00000010 (code=1), thread 1894 (.example.mixpad) 02-12 09:33:51.191: E/Trace(1961): error opening trace file: No such file or directory (2) 02-12 09:33:51.331: D/dalvikvm(1961): GC_FOR_ALLOC freed 43K, 3% free 8017K/8195K, paused 3ms, total 3ms 02-12 09:33:51.359: I/dalvikvm-heap(1961): Grow heap (frag case) to 10.785MB for 3067212-byte allocation 02-12 09:33:51.379: D/dalvikvm(1961): GC_CONCURRENT freed 1K, 2% free 11011K/11207K, paused 13ms+3ms, total 21ms 02-12 09:33:51.499: D/libEGL(1961): loaded /system/lib/egl/libEGL_emulation.so 02-12 09:33:51.507: D/(1961): HostConnection::get() New Host Connection established 0xb8b8a110, tid 1961 02-12 09:33:51.531: D/libEGL(1961): loaded /system/lib/egl/libGLESv1_CM_emulation.so 02-12 09:33:51.531: D/libEGL(1961): loaded /system/lib/egl/libGLESv2_emulation.so 02-12 09:33:51.611: W/EGL_emulation(1961): eglSurfaceAttrib not implemented 02-12 09:33:51.627: D/OpenGLRenderer(1961): Enabling debug mode 0 02-12 09:33:51.691: D/OpenGLRenderer(1961): TextureCache::get: create texture(0xb8b908e0): name, size, mSize = 1, 1048576, 1048576 02-12 09:33:51.735: D/OpenGLRenderer(1961): TextureCache::get: create texture(0xb8ba7d10): name, size, mSize = 2, 5184, 1053760 02-12 09:33:51.775: D/OpenGLRenderer(1961): TextureCache::get: create texture(0xb8bccaf8): name, size, mSize = 4, 20736, 1074496 02-12 09:33:51.839: D/OpenGLRenderer(1961): TextureCache::get: create texture(0xb8b8f730): name, size, mSize = 5, 3067200, 4141696 02-12 09:33:51.867: D/OpenGLRenderer(1961): TextureCache::get: create texture(0xb8be9798): name, size, mSize = 6, 7488, 4149184 02-12 09:33:51.871: D/OpenGLRenderer(1961): TextureCache::get: create texture(0xb8b88ff0): name, size, mSize = 7, 40984, 4190168 02-12 09:33:51.875: D/OpenGLRenderer(1961): TextureCache::get: create texture(0xb8b8f7c0): name, size, mSize = 8, 37412, 4227580 02-12 09:33:51.883: D/OpenGLRenderer(1961): TextureCache::get: create texture(0xb8ba8b60): name, size, mSize = 9, 33276, 4260856 02-12 09:33:51.887: D/OpenGLRenderer(1961): TextureCache::get: create texture(0xb8b9c0d8): name, size, mSize = 10, 32712, 4293568 02-12 09:33:51.891: D/OpenGLRenderer(1961): TextureCache::get: create texture(0xb8b8b840): name, size, mSize = 11, 2304, 4295872

java
android
xml
asked on Stack Overflow Feb 12, 2014 by user3221836 • edited Apr 17, 2014 by anticafe

4 Answers

3

I meet this problem too, please use myRecorder=null, I think that because myRecorder.release() has bug,

you can do that:

myRecorder.stop();
myRecorder.release();
myRecorder = null;

and other place append judgement

if(myRecorder != null){ ... }
answered on Stack Overflow Mar 26, 2015 by maidou • edited Mar 26, 2015 by Code Lღver
1

Try adding this:

mediaRecorder.stop();
mediaRecorder.reset(); //instead of release() and =null

And then in

public void onStop() {

    mediaRecorder.release();
    mediaRecorder = null;
answered on Stack Overflow Sep 9, 2016 by GaNdAlF89
1

I have this...

if (recorder != null) {
        recorder.stop();
        recorder.reset();
        recorder.release();
        recorder = null;
    }

... and works fine!

answered on Stack Overflow May 30, 2017 by oskarko
0

Try calling super first in your onCreate :

public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
answered on Stack Overflow Feb 12, 2014 by Laurent B

User contributions licensed under CC BY-SA 3.0