【问题标题】:OnResume camera error.. not able to connect to camera serviceOnResume 相机错误.. 无法连接到相机服务
【发布时间】:2015-09-18 09:43:54
【问题描述】:

在我的活动中,我有 3 个 Tabost,第一个是画廊,第二个是相机,第三个是视频,当我点击相机时,它打开了,用户可以轻松拍照,它工作正常,点击另一个 tabhost 时会发生其他事情,但是当我再次点击在相机上,然后应用程序崩溃并显示错误“OnResume camera error.. not able to connect to camera service”

下面是我的简历代码....

protected void onResume() {
        super.onResume();
        // TODO Auto-generated method stub
        if(camera==null){
        camera = Camera.open();
        camera.startPreview();
        camera.setErrorCallback(new ErrorCallback() {
            public void onError(int error, Camera mcamera) {

                camera.release();
                camera = Camera.open();
                Log.d("Camera died", "error camera");

            }
        });
        }
        if (camera != null) {
            if (Build.VERSION.SDK_INT >= 14)
                setCameraDisplayOrientation(context,
                        CameraInfo.CAMERA_FACING_BACK, camera);
            preview.setCamera(camera);
        }
    }

主要是在这条线camera = Camera.open();中显示错误

我尝试在 onPause 中使用相机释放但不起作用..请提出一些建议

Logcat:

09-18 15:35:29.595: E/AndroidRuntime(9598): FATAL EXCEPTION: main
09-18 15:35:29.595: E/AndroidRuntime(9598): Process: com.example.rooshan, PID: 9598
09-18 15:35:29.595: E/AndroidRuntime(9598): java.lang.RuntimeException: Unable to resume activity {com.example.rooshan/com.rooshan.main.Photo_Activity}: java.lang.RuntimeException: Fail to connect to camera service
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2955)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:146)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:749)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.widget.TabHost.setCurrentTab(TabHost.java:413)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:154)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:546)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.view.View.performClick(View.java:4478)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.view.View$PerformClick.run(View.java:18698)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.os.Handler.handleCallback(Handler.java:733)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.os.Handler.dispatchMessage(Handler.java:95)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.os.Looper.loop(Looper.java:149)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.app.ActivityThread.main(ActivityThread.java:5257)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at java.lang.reflect.Method.invokeNative(Native Method)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at java.lang.reflect.Method.invoke(Method.java:515)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at dalvik.system.NativeStart.main(Native Method)
09-18 15:35:29.595: E/AndroidRuntime(9598): Caused by: java.lang.RuntimeException: Fail to connect to camera service
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.hardware.Camera.native_setup(Native Method)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.hardware.Camera.<init>(Camera.java:407)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.hardware.Camera.open(Camera.java:345)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at com.rooshan.main.Photo_Activity.onResume(Photo_Activity.java:93)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1192)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.app.Activity.performResume(Activity.java:5490)
09-18 15:35:29.595: E/AndroidRuntime(9598):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2945)
09-18 15:35:29.595: E/AndroidRuntime(9598):     ... 17 more

【问题讨论】:

  • 附加 logcat 的错误
  • 请检查我已经用 logcat 更新了我的问题
  • 您是否在清单中添加了相机权限?
  • 是的..
  • @AnkitSharma 你有解决这个问题的办法吗?

标签: android android-camera android-tabhost


【解决方案1】:

您是否在 onPause 中释放了相机?

这样

if (mCamera != null) {
    // Call stopPreview() to stop updating the preview surface.
    mCamera.stopPreview();

    // Important: Call release() to release the camera for use by other
    // applications. Applications should release the camera immediately
    // during onPause() and re-open() it during onResume()).
    mCamera.release();

    mCamera = null;
}

您必须停止预览并在您的情况下释放相机,否则第一次通话仍会阻止恢复...

【讨论】:

  • 使用此功能后,我的预览活动中出现另一个错误,我正在显示点击的图片。我收到此错误 09-18 15:53:03.348: E/AndroidRuntime(11280): at android.hardware.Camera._stopPreview(Native Method)
猜你喜欢
  • 1970-01-01
  • 2016-09-24
  • 1970-01-01
  • 2011-10-16
  • 2017-10-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多