2012-07-25 77 views
2

从另一个活动导航到摄像头活动时发生了“无法连接到摄像头服务”的异常。此问题发生在Camera.open()。我搜索了很多并尝试了解决方案可用。但问题没有解决。请提供一些帮助。提前致谢。无法连接到Android中的摄像头服务

@Override 
    public void surfaceChanged(final SurfaceHolder holder, int arg1, 
      int arg2, int arg3) { 


     cameraHandler = new Handler() { 
      /* 
      * (non-Javadoc) 
      * 
      * @see android.os.Handler#handleMessage(android.os.Message) 
      */ 
      @Override 
      public void handleMessage(Message msg) { 
       switch (msg.what) { 
       case LOADCAMERA: 
        if (null != mProgress) { 
         if (mProgress.isShowing()) { 
          mProgress.dismiss(); 
         } 
        } 
        try { 
         try { 

          mCam = Camera.open(); // attempt to get a Camera 
                // instance 
         } catch (Exception e) { 
          Log.e("Exception", e.getMessage()); 
         } 
         mCam.setPreviewDisplay(holder); 
         mCameraParameters = mCam.getParameters(); 
         if (isFlashLightOn) { 
          mCameraParameters 
            .setFlashMode(Parameters.FLASH_MODE_TORCH); 
         } else { 
          mCameraParameters 
            .setFlashMode(Parameters.FLASH_MODE_OFF); 
         } 
         mCameraParameters.setPreviewSize(mVideoWidth, 
           mVideoHeight); 
         mCam.setParameters(mCameraParameters); 
         mCam.startPreview(); 
         mCam.unlock(); 
        } catch (IOException e) { 
         e.printStackTrace(); 
        } 

       } 
       super.handleMessage(msg); 
      } 
     }; 
     Message msg = new Message(); 
     msg.what = LOADCAMERA; 
     cameraHandler.sendMessageDelayed(msg, 700); 

    } 

    @Override 
    public void surfaceCreated(SurfaceHolder holder) { 

    } 

    @Override 
    public void surfaceDestroyed(SurfaceHolder arg0) { 


     if (mCam != null) { 
      mCam.stopPreview(); 
      mCam.setPreviewCallback(null); 
      mCam.release(); 
      mCam = null; 
     } 

    } 
} 

登录猫加入

W/CameraService( 78): CameraService::connect X (pid 623) rejected (camera 0 is still  busy). 
E/Exception( 623): Fail to connect to camera service 
D/AndroidRuntime( 623): Shutting down VM 
W/dalvikvm( 623): threadid=1: thread exiting with uncaught exception(group=0x40015560) 
E/AndroidRuntime( 623): FATAL EXCEPTION: main 
E/AndroidRuntime( 623): java.lang.NullPointerException 
E/AndroidRuntime( 623): at com.gui.MainActivity$CameraPreview$1.handleMessage(MainActivity.java:2041) 
E/AndroidRuntime( 623): at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime( 623): at android.os.Looper.loop(Looper.java:130) 
E/AndroidRuntime( 623): at android.app.ActivityThread.main(ActivityThread.java:3683) 
E/AndroidRuntime( 623): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime( 623): at java.lang.reflect.Method.invoke(Method.java:507) 
E/AndroidRuntime( 623): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:845) 
E/AndroidRuntime( 623): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:603) 
E/AndroidRuntime( 623): at dalvik.system.NativeStart.main(Native Method) 
W/ActivityManager( 106): Force finishing activity com.gui/.MainActivity 
W/ActivityManager( 106): Force finishing activity com.gui/.MainActivity 
E/v4l2_utils( 78): Error = Try again from dqbuf 
E/SEC_Overlay( 78): Failed to DQ/-1 
E/CameraHardwareSec( 78): ERR(int android::CameraHardwareSec::previewThread()):overlay dequeueBuffer fail 
I/CameraHardwareSec( 78): int android::CameraHardwareSec::previewThreadWrapper(): calling mSecCamera->stopPreview() and waiting 
I/CameraHardwareSec( 78): int android::CameraHardwareSec::previewThreadWrapper(): return from wait 
I/CameraHardwareSec( 78): int android::CameraHardwareSec::previewThreadWrapper(): exiting 
W/SecCamera( 78): int android::SecCamera::stopPreview(): doing nothing because m_flag_camera_start is zero 
I/CameraHardwareSec( 78): virtual void android::CameraHardwareSec::release(): calling mPreviewHeap.dispose() 
W/SecCamera( 78): int android::SecCamera::stopRecord(): doing nothing because  m_flag_record_start is zero 
I/SecCamera( 78): DeinitCamera: m_cam_fd(15) 
I/SecCamera( 78): DeinitCamera: m_cam_fd2(21) 
+1

你能提供logcat吗? – 2012-07-25 10:19:01

+0

我已经提供了日志猫 – user987362 2012-07-25 11:01:49

+0

您调试过?因为它给予空指针异常! – 2012-07-25 11:31:29

回答

3

CameraService ::连接拒绝X(PID 623)(照相机0仍然忙)。

这意味着一些其他进程(应用程序)已经调用'Camera.open',并没有释放它。在发布之前,您无法访问摄像机。

当您从其他活动导航到相机活动时,“有例外”无法连接到相机服务的含义是什么。

这是什么其他活动,它访问相机?

+0

我有一个适用于应用程序设置的活动。当我从设置活动返回到相机活动时,应用程序崩溃了。设置活动未使用相机。 – user987362 2012-07-26 03:32:27

+0

我被困在这个问题。请帮助我。 – user987362 2012-07-27 07:06:56

相关问题