title: Buffer Queue has been abandoned
body: <p>I am writing an app to make a lantern by lighting the LED of an Android device.
  Most of the time it works well, but sometimes I see the message "E/BufferQueueProducer﹕ [unnamed-5260-0] queueBuffer: BufferQueue has been abandoned" at the logCat.</p>
  
  <p>After that, the app is not able to light the LED of the device. It is able to gain control of the LED again when the orientation changes... quite weird.
  I have done lots of changes but the only thing I manage is to screw it up completely so that it never is able to light the LED.</p>
  
  <p>Could you help me with this issue?</p>
  
  <p>I attach my .java file and the logCat corresponding to this problem.</p>
  
  <pre><code>package com.spc.acrux.linterna;
  
  import android.content.Context;
  import android.content.Intent;
  import android.content.pm.PackageManager;
  import android.graphics.SurfaceTexture;
  import android.hardware.Camera;
  import android.hardware.Camera.Parameters;
  import android.net.Uri;
  import android.os.Bundle;
  import android.support.v7.app.ActionBarActivity;
  import android.util.Log;
  import android.view.Menu;
  import android.view.MenuItem;
  import android.view.View;
  import android.widget.Button;
  import android.widget.TextView;
  import android.widget.Toast;
  
  import com.apptracker.android.track.AppTracker;
  import com.google.android.gms.ads.AdListener;
  import com.google.android.gms.ads.AdRequest;
  import com.google.android.gms.ads.AdView;
  import com.google.android.gms.ads.InterstitialAd;
  
  import java.io.IOException;
  
  
  public class MainActivity extends ActionBarActivity {
      // Remove the below line after defining your own ad unit ID.
      //private static final String TOAST_TEXT = "Test ads are being shown. "
      //        + "To show live ads, replace the ad unit ID in res/values/strings.xml with your own ad unit ID.";
  
      private static final int START_LEVEL = 1;
      private int mLevel;
      private Button mNextLevelButton;
      private InterstitialAd mInterstitialAd;
      private TextView mLevelTextView;
      private Camera camera;
      //flag to detect flash is on or off
      private boolean isLighOn = false;
  
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
  
  
          // For LeadBolt
          if(savedInstanceState == null) {
              // Initialize Leadbolt SDK with your api key
              AppTracker.startSession(getApplicationContext(), "hhxSJ6GsjLqcGFQgIA7zunbhKe5NbX1k");
          }
          // cache Leadbolt Ad without showing it
          AppTracker.loadModuleToCache(getApplicationContext(),"inapp");
  
  
  
      // Mostrar un anuncio
         AdView mAdView = (AdView) findViewById(R.id.adView);
          AdRequest adRequest = new AdRequest.Builder().build();
          mAdView.loadAd(adRequest);
  
  
  
          // Crear el boton ON / OFF
          Button holaPlayerBtn = (Button)findViewById(R.id.buttononoff);
  
          // call this when you want to display the Leadbolt Interstitial
          AppTracker.loadModule(getApplicationContext(),"inapp");
  
  
          Context context = this;
          PackageManager pm = context.getPackageManager();
  
          // if device support camera?
          if (!pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
              Log.e("err", "Device has no camera!");
              return;
          }
  
          camera = Camera.open();
          try {
              camera.setPreviewTexture(new SurfaceTexture(0));
          } catch (IOException e) {
              e.printStackTrace();
          }
          final Parameters p = camera.getParameters();
  
          // Create the next level button, which tries to show an interstitial when clicked.
          mNextLevelButton = ((Button) findViewById(R.id.next_level_button));
          mNextLevelButton.setEnabled(false);
          mNextLevelButton.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                  showInterstitial();
              }
          });
  
          // Create the text view to show the level number.
          mLevelTextView = (TextView) findViewById(R.id.level);
          mLevel = START_LEVEL;
  
          // Create the InterstitialAd and set the adUnitId (defined in values/strings.xml).
          mInterstitialAd = new InterstitialAd(this);
          mInterstitialAd.setAdUnitId(getString(R.string.interstitial_ad_unit_id));
          mInterstitialAd.setAdListener(new AdListener() {
              @Override
              public void onAdLoaded() {
                  mNextLevelButton.setEnabled(true);
              }
  
              @Override
              public void onAdFailedToLoad(int errorCode) {
                  mNextLevelButton.setEnabled(true);
              }
  
              @Override
              public void onAdClosed() {
                  // Proceed to the next level.
                  goToNextLevel();
              }
          });
          loadInterstitial();
  
          // Toasts the test ad message on the screen. Remove this after defining your own ad unit ID.
          //Toast.makeText(this, TOAST_TEXT, LENGTH_LONG).show();
  
          //Lo que hace el botón "Hola" que se usa para encender y apagar la linterna
          holaPlayerBtn.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                  try {
                      String TEXTO = getString(R.string.pulsaste);
                      Toast.makeText(MainActivity.this, TEXTO, Toast.LENGTH_LONG).show();
  
                      //Aqui hay que activar el flash y la cámara
                      if (isLighOn) {
  
                          Log.i("info", "torch is turn off!");
  
                          p.setFlashMode(Parameters.FLASH_MODE_OFF);
                          camera.setParameters(p);
                          camera.stopPreview();
                          isLighOn = false;
  
                      } else {
  
                          Log.i("info", "torch is turn on!");
  
                          p.setFlashMode(Parameters.FLASH_MODE_TORCH);
  
                          camera.setParameters(p);
                          camera.startPreview();
                          isLighOn = true;
  
                      }
  
                      }
  
                     catch (Exception e) {
                      e.printStackTrace();
                  }
              }
          });
  
  
      }
  
  
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          // Inflate the menu; this adds items to the action bar if it is present.
          getMenuInflater().inflate(R.menu.menu_main, menu);
          return true;
      }
  
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
          // Handle action bar item clicks here. The action bar will
          // automatically handle clicks on the Home/Up button, so long
          // as you specify a parent activity in AndroidManifest.xml.
  
          switch (item.getItemId()) {
              case R.id.Otras_apps:
                  startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=pub:\"Pedro Santangelo\"") ) );
                  return true;
              case R.id.salir:
                 // FlurryAgent.onEndSession(this);
              {
                  if (camera != null) {
                      camera.release();
                  }
  
                  this.finish();
                  return true;
              }
              default:
                  return super.onOptionsItemSelected(item);
          }
  
      }
  
      private void showInterstitial() {
          // Show the ad if it's ready. Oth&lt;string name="otras_apps"&gt;Otras Aplicaciones&lt;/string&gt;oast and reload the ad.
          if (mInterstitialAd != null &amp;&amp; mInterstitialAd.isLoaded()) {
              mInterstitialAd.show();
          } else {
              Toast.makeText(this, getString(R.string.AdError), Toast.LENGTH_SHORT).show();
              goToNextLevel();
          }
      }
  
      private void loadInterstitial() {
          // Disable the next level button and load the ad.
          mNextLevelButton.setEnabled(false);
          AdRequest adRequest = new AdRequest.Builder().build();
          mInterstitialAd.loadAd(adRequest);
      }
  
      private void goToNextLevel() {
          // Show the next level and reload the ad to prepare for the level after.
          mLevelTextView.setText(getString(R.string.Nivel) + " " + (++mLevel));
          loadInterstitial();
  
      }
  
      //public void activar() {
      //Activar o desactivar la linterna... no se usa ya.
      //    final String TEXTO = "Pulsaste ON / OFF ";
      //    Toast.makeText(this, TEXTO, LENGTH_LONG).show();
  
      //}
  
      @Override
      protected void onDestroy() {
          super.onDestroy();
          if (camera != null) {
              camera.release();
          }
      }
  /*
      @Override
      public void onPause() {
          super.onPause();
          if (camera != null) {
              camera.release();
          }
  
      }
  
      @Override
      public void onStop() {
          super.onStop();
          if (camera != null) {
              camera.release();
          }
  
      }
  */
  
  }
  </code></pre>
  
  <p>===== The logCat is as shown: ========</p>
  
  <pre><code>05-11 19:15:23.515    5260-5260/? I/art﹕ Late-enabling -Xcheck:jni
  05-11 19:15:23.751    5260-5260/com.spc.acrux.linterna I/AppTracker﹕ Session started. SDK Version in use 5.1
  05-11 19:15:23.756    5260-5260/com.spc.acrux.linterna W/AppTracker﹕ Event listener is not implemented before startSession get called.
  05-11 19:15:23.805    5260-5260/com.spc.acrux.linterna I/AppTracker﹕ Loading module with caching enabled for location:inapp
  05-11 19:15:23.842    5260-5260/com.spc.acrux.linterna W/ResourcesManager﹕ Asset path '/system/framework/com.android.media.remotedisplay.jar' does not exist or contains no resources.
  05-11 19:15:23.842    5260-5260/com.spc.acrux.linterna W/ResourcesManager﹕ Asset path '/system/framework/com.android.location.provider.jar' does not exist or contains no resources.
  05-11 19:15:24.011    5260-5260/com.spc.acrux.linterna I/WebViewFactory﹕ Loading com.google.android.webview version 42.0.2311.138 (code 2311138)
  05-11 19:15:24.038    5260-5260/com.spc.acrux.linterna I/LibraryLoader﹕ Time to load native libraries: 3 ms (timestamps 8049-8052)
  05-11 19:15:24.038    5260-5260/com.spc.acrux.linterna I/LibraryLoader﹕ Expected native library version number "",actual native library version number ""
  05-11 19:15:24.057    5260-5260/com.spc.acrux.linterna V/WebViewChromiumFactoryProvider﹕ Binding Chromium to main looper Looper (main, tid 1) {23b24f79}
  05-11 19:15:24.057    5260-5260/com.spc.acrux.linterna I/LibraryLoader﹕ Expected native library version number "",actual native library version number ""
  05-11 19:15:24.058    5260-5260/com.spc.acrux.linterna I/chromium﹕ [INFO:library_loader_hooks.cc(112)] Chromium logging enabled: level = 0, default verbosity = 0
  05-11 19:15:24.072    5260-5260/com.spc.acrux.linterna I/BrowserStartupController﹕ Initializing chromium process, singleProcess=true
  05-11 19:15:24.073    5260-5260/com.spc.acrux.linterna W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
  05-11 19:15:24.075    5260-5260/com.spc.acrux.linterna E/SysUtils﹕ ApplicationContext is null in ApplicationStatus
  05-11 19:15:24.098    5260-5348/com.spc.acrux.linterna W/AudioManagerAndroid﹕ Requires BLUETOOTH permission
  05-11 19:15:24.098    5260-5260/com.spc.acrux.linterna W/chromium﹕ [WARNING:resource_bundle.cc(286)] locale_file_path.empty()
  05-11 19:15:24.099    5260-5260/com.spc.acrux.linterna I/chromium﹕ [INFO:aw_browser_main_parts.cc(63)] Load from apk succesful, fd=38 off=57784 len=4071
  05-11 19:15:24.101    5260-5260/com.spc.acrux.linterna I/chromium﹕ [INFO:aw_browser_main_parts.cc(76)] Loading webviewchromium.pak from, fd:39 off:7953032 len:1161174
  05-11 19:15:24.111    5260-5260/com.spc.acrux.linterna I/Adreno-EGL﹕ &lt;qeglDrvAPI_eglInitialize:379&gt;: QUALCOMM Build: 01/14/15, ab0075f, Id3510ff6dc
  05-11 19:15:24.178    5260-5260/com.spc.acrux.linterna I/Ads﹕ CsiReporterFactory: CSI is not enabled. No CSI reporter created.
  05-11 19:15:24.186    5260-5260/com.spc.acrux.linterna I/Ads﹕ Starting ad request.
  05-11 19:15:24.189    5260-5260/com.spc.acrux.linterna I/Ads﹕ Use AdRequest.Builder.addTestDevice("46B876313BCC4B37C16A2B0F9ECCAD83") to get test ads on this device.
  05-11 19:15:24.209    5260-5260/com.spc.acrux.linterna I/AppTracker﹕ Loading module for location:inapp
  05-11 19:15:24.213    5260-5260/com.spc.acrux.linterna W/AppTracker﹕ No Ad available for location inapp. Please run loadModuleToCache first
  05-11 19:15:24.213    5260-5260/com.spc.acrux.linterna E/AppTracker﹕ Module inapp failed to load:ad not ready
  05-11 19:15:24.400    5260-5260/com.spc.acrux.linterna I/Ads﹕ Starting ad request.
  05-11 19:15:24.400    5260-5260/com.spc.acrux.linterna I/Ads﹕ Use AdRequest.Builder.addTestDevice("46B876313BCC4B37C16A2B0F9ECCAD83") to get test ads on this device.
  05-11 19:15:24.423    5260-5428/com.spc.acrux.linterna D/OpenGLRenderer﹕ Use EGL_SWAP_BEHAVIOR_PRESERVED: true
  05-11 19:15:24.434    5260-5260/com.spc.acrux.linterna D/Atlas﹕ Validating map...
  05-11 19:15:24.475    5260-5428/com.spc.acrux.linterna I/OpenGLRenderer﹕ Initialized EGL, version 1.4
  05-11 19:15:24.481    5260-5428/com.spc.acrux.linterna D/OpenGLRenderer﹕ Enabling debug mode 0
  05-11 19:15:26.050    5260-5260/com.spc.acrux.linterna I/AppTracker﹕ Module inapp cached successfully.
  05-11 19:15:27.554    5260-5361/com.spc.acrux.linterna W/chromium﹕ [WARNING:data_reduction_proxy_config.cc(150)] SPDY proxy OFF at startup
  05-11 19:15:27.573    5260-5260/com.spc.acrux.linterna W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
  05-11 19:15:27.590    5260-5260/com.spc.acrux.linterna W/AwContents﹕ onDetachedFromWindow called when already detached. Ignoring
  05-11 19:15:27.608    5260-5260/com.spc.acrux.linterna W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
  05-11 19:15:27.608    5260-5260/com.spc.acrux.linterna W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
  05-11 19:15:27.730    5260-5260/com.spc.acrux.linterna W/BindingManager﹕ Cannot call determinedVisibility() - never saw a connection for the pid: 5260
  05-11 19:15:27.807    5260-5260/com.spc.acrux.linterna W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
  05-11 19:15:27.809    5260-5260/com.spc.acrux.linterna W/AwContents﹕ onDetachedFromWindow called when already detached. Ignoring
  05-11 19:15:27.820    5260-5260/com.spc.acrux.linterna W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
  05-11 19:15:27.820    5260-5260/com.spc.acrux.linterna W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
  05-11 19:15:27.871    5260-5260/com.spc.acrux.linterna W/BindingManager﹕ Cannot call determinedVisibility() - never saw a connection for the pid: 5260
  05-11 19:15:29.284    5260-5260/com.spc.acrux.linterna I/Ads﹕ Ad finished loading.
  05-11 19:15:30.291    5260-5260/com.spc.acrux.linterna I/Ads﹕ Scheduling ad refresh 30000 milliseconds from now.
  05-11 19:15:30.300    5260-5260/com.spc.acrux.linterna I/Ads﹕ Ad finished loading.
  05-11 19:15:50.616    5260-5260/com.spc.acrux.linterna I/info﹕ torch is turn on!
  05-11 19:15:50.732    5260-5428/com.spc.acrux.linterna V/RenderScript﹕ Application requested CPU execution
  05-11 19:15:50.742    5260-5428/com.spc.acrux.linterna V/RenderScript﹕ 0x9c94c800 Launching thread(s), CPUs 4
  05-11 19:15:58.265    5260-5260/com.spc.acrux.linterna I/info﹕ torch is turn off!
  05-11 19:15:58.808    5260-5260/com.spc.acrux.linterna I/Choreographer﹕ Skipped 32 frames!  The application may be doing too much work on its main thread.
  05-11 19:16:00.292    5260-5260/com.spc.acrux.linterna I/Ads﹕ Starting ad request.
  05-11 19:16:00.293    5260-5260/com.spc.acrux.linterna I/Ads﹕ Use AdRequest.Builder.addTestDevice("46B876313BCC4B37C16A2B0F9ECCAD83") to get test ads on this device.
  05-11 19:16:01.011    5260-5260/com.spc.acrux.linterna W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
  05-11 19:16:01.016    5260-5260/com.spc.acrux.linterna W/AwContents﹕ onDetachedFromWindow called when already detached. Ignoring
  05-11 19:16:01.030    5260-5260/com.spc.acrux.linterna W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
  05-11 19:16:01.030    5260-5260/com.spc.acrux.linterna W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
  05-11 19:16:01.096    5260-5260/com.spc.acrux.linterna W/BindingManager﹕ Cannot call determinedVisibility() - never saw a connection for the pid: 5260
  05-11 19:16:01.687    5260-5260/com.spc.acrux.linterna I/Ads﹕ Scheduling ad refresh 30000 milliseconds from now.
  05-11 19:16:01.690    5260-5260/com.spc.acrux.linterna I/Ads﹕ Ad finished loading.
  05-11 19:16:01.747    5260-5260/com.spc.acrux.linterna W/BindingManager﹕ Cannot call determinedVisibility() - never saw a connection for the pid: 5260
  05-11 19:16:08.705    5260-5260/com.spc.acrux.linterna I/info﹕ torch is turn on!
  05-11 19:16:10.141    5260-5278/com.spc.acrux.linterna E/BufferQueueProducer﹕ [unnamed-5260-0] queueBuffer: BufferQueue has been abandoned
  05-11 19:16:10.146    5260-6865/com.spc.acrux.linterna E/BufferQueueProducer﹕ [unnamed-5260-0] dequeueBuffer: BufferQueue has been abandoned
  05-11 19:16:10.146    5260-5279/com.spc.acrux.linterna E/BufferQueueProducer﹕ [unnamed-5260-0] dequeueBuffer: BufferQueue has been abandoned
  05-11 19:16:10.147    5260-5278/com.spc.acrux.linterna E/BufferQueueProducer﹕ [unnamed-5260-0] dequeueBuffer: BufferQueue has been abandoned
  05-11 19:16:10.147    5260-6865/com.spc.acrux.linterna E/BufferQueueProducer﹕ [unnamed-5260-0] dequeueBuffer: BufferQueue has been abandoned
  05-11 19:16:10.148    5260-5279/com.spc.acrux.linterna E/BufferQueueProducer﹕ [unnamed-5260-0] dequeueBuffer: BufferQueue has been abandoned
  05-11 19:16:10.148    5260-5278/com.spc.acrux.linterna E/BufferQueueProducer﹕ [unnamed-5260-0] dequeueBuffer: BufferQueue has been abandoned
  05-11 19:16:10.149    5260-6865/com.spc.acrux.linterna E/BufferQueueProducer﹕ [unnamed-5260-0] dequeueBuffer: BufferQueue has been abandoned
  </code></pre>