Java.Lang.RuntimeException, setParameters failed to execute in Android version (4.1.1)

I developed an application that captures a photo when I click on it. It works well on the Acer tab (capture image and save to SD card). Now, when I launch the same application in Samsung Galaxy (Android-4.1.1), my application receives the message “Sorry the application stopped” when you click on the punch in button. And my code goes here.

// ClockIn functionality clockin_btn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { clockin_btn.setEnabled(false); camera.stopPreview(); capturePhoto(0); // showing one error here in log cat previewing = false; clockin_label.setText(String.format(session_msg,logout_seconds)); ticker.setBase(SystemClock.elapsedRealtime()); ticker.start(); } }); private String capturePhoto(int clockInOutMode) { final int mode = clockInOutMode; img_file = String.format("%d.jpg", System.currentTimeMillis()); Camera.PictureCallback mCall = new Camera.PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) { try { Bitmap mBitmap = BitmapFactory.decodeByteArray(data, 0, data.length); File file = new File(Constants.EMP_IMG_LOCATION, img_file); FileOutputStream fOut = new FileOutputStream(file); mBitmap.compress(Bitmap.CompressFormat.JPEG, 80, fOut); fOut.flush(); fOut.close(); if ( mode == 0) { clockIn(img_file); } else { clockOut(img_file); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }; Camera.Parameters cameraParams = camera.getParameters(); List<Camera.Size> sizes = cameraParams.getSupportedPictureSizes(); Camera.Size result = null; for (int i=0;i<sizes.size();i++){ result = (Size) sizes.get(i); Log.i("PictureSize", "Supported Size.Width: " + result.width + "height: " +result.height); } cameraParams.setPictureSize(640, 480); camera.setParameters(cameraParams); System.gc(); camera.setPreviewCallback(null); camera.takePicture(null, null, mCall); // showing one error here in logcat return img_file; } 

My Logcat is displayed as:

 03-27 04:52:19.273: E/AndroidRuntime(4105): FATAL EXCEPTION: main 03-27 04:52:19.273: E/AndroidRuntime(4105): java.lang.RuntimeException: setParameters failed 03-27 04:52:19.273: E/AndroidRuntime(4105): at android.hardware.Camera.native_setParameters(Native Method) 03-27 04:52:19.273: E/AndroidRuntime(4105): at android.hardware.Camera.setParameters(Camera.java:1452) 

and my android.manifest.xml file:

  <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /> <used-feature android:name="android.hardware.location" /> <used-feature android:name="android.hardware.camera.setParameters" /> 
+4
source share
3 answers

Call the startPreview method before calling the takePicture method camera.takePicture camera.takePicture(null, null, mCall); , and the startPreview method that I used is

 private void startPreview() { if (cameraConfigured && camera!=null) { camera.startPreview(); inPreview=true; } } 

and through this I solved my problem ... It can help you guys.

+2
source

It does not work in all cases. You call getSupportedPictureSizes() , then you can get the list. And select the options from setPictureSize() from the list.

0
source
 private void flipBackToFrontCamera() { if (mCamera != null) { mCamera.stopPreview(); mCamera.release(); mCamera = null; } mCamera = Camera.open(1); if (mCamera != null) { try { mCamera.setPreviewDisplay(surfaceView.getHolder()); mCamera.startPreview(); } catch (IOException e) { e.printStackTrace(); } } } 
0
source

All Articles