Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.lang.RuntimeException: Fail to get camera info

Tags:

android

In my PhotoCaptureActivity.java's onCreate() I have:

OrientationEventListener oeL = new  OrientationEventListener(this) {        
            public void onOrientationChanged(int orientation) {
                 if (orientation == ORIENTATION_UNKNOWN) return;
                 try {
                     android.hardware.Camera.CameraInfo info =
                            new android.hardware.Camera.CameraInfo();                
                     android.hardware.Camera.getCameraInfo(currentCameraId, info);
                     orientation = (orientation + 45) / 90 * 90;
                     int rotation = 0;
                     if (info.facing == CameraInfo.CAMERA_FACING_FRONT) {
                         rotation = (info.orientation - orientation + 360) % 360;
                     } else {  // back-facing camera
                         rotation = (info.orientation + orientation) % 360;
                     }
                     if(camera != null) {
                         Camera.Parameters parameters = camera.getParameters();
                         parameters.setRotation(rotation);
                         savingRotation = rotation;
                     }
                 } catch(Exception e) {
                     return;
                 }
            }
         };
         oeL.enable();

Exception occurred on this line: android.hardware.Camera.getCameraInfo(currentCameraId, info);

java.lang.RuntimeException: Fail to get camera info
       at android.hardware.Camera.getCameraInfo(Camera.java)
       at cic.signin.macio.jun.activities.PhotoCaptureActivity$3.onOrientationChanged(PhotoCaptureActivity.java:70)
       at android.view.OrientationEventListener$SensorEventListenerImpl.onSensorChanged(OrientationEventListener.java:143)
       at android.hardware.SensorManager$ListenerDelegate$1.handleMessage(SensorManager.java:584)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:137)
       at android.app.ActivityThread.main(ActivityThread.java:4424)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:511)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
       at dalvik.system.NativeStart.main(NativeStart.java)

My question is: if android.hardware.Camera.getCameraInf(currentCameraId, info) in OrientationEventListener's onOrientationChanged() was called too frequently caused the exception? How to solve the issue? btw, this exception didn't occur on 4.0 and 4.1, only occurred on certain device.

like image 823
macio.Jun Avatar asked Mar 13 '14 15:03

macio.Jun


1 Answers

Wild guess here - its not related to your code, reset the device and try again. Sometimes my Camera (or even the flash stops working) and the only to fix it is to reset the device.

like image 148
EE66 Avatar answered Oct 31 '22 12:10

EE66