W/CameraBase:连接到摄像机时发生错误:0

Agg*_*sor 12 java camera android runtime-error android-camera

有一个类似的问题,但它没有得到解决:

W/CameraBase:连接到摄像机时出错:在camera.open()调用时出现0

我有一个(自然)使用相机的应用程序.它一直很好.但是,在构建之间没有代码更改的情况下,应用程序开始崩溃(通过Git提交历史记录验证没有代码更改).

为了进一步验证问题是在硬件的某个地方,我在另一部手机上运行相同的代码,它工作得很好.不知何故,相机被锁定,无法打开.

这是相关代码:

创建一个previe对象

_cameraPreview = new CameraPreview(getActivity(),_camera);
Run Code Online (Sandbox Code Playgroud)

这是它的创建代码

 public CameraPreview(Context context, Camera camera) 
    {
        super(context);
        _camera = camera;
        _surfaceHolder = getHolder();
        _surfaceHolder.addCallback(this);
    }
Run Code Online (Sandbox Code Playgroud)

打开相机:

//默认打开后置摄像头

public static Camera getCameraInstance()
{
    Camera c = null;
    try
    {
        c = Camera.open();
    }catch (Exception e)
    {
       e.printStackTrace();
    }

    return c;
}
Run Code Online (Sandbox Code Playgroud)

这是发生错误的地方,camera.Open使用以下堆栈跟踪抛出错误.我的相机对象为空.这段代码来自官方的Android文档,但如果它从会话外锁定,他们不会谈论如何"释放相机".

完全注销是

W/CameraBase? An error occurred while connecting to camera: 0
W/System.err? java.lang.RuntimeException: Fail to connect to camera service
W/System.err? at android.hardware.Camera.<init>(Camera.java:497)
W/System.err? at android.hardware.Camera.open(Camera.java:357)
W/System.err? at co.pumpup.app.EditPhotoFragment.getCameraInstance(EditPhotoFragment.java:241)
W/System.err? at co.pumpup.app.EditPhotoFragment.onCreateView(EditPhotoFragment.java:76)
W/System.err? at android.app.Fragment.performCreateView(Fragment.java:2053)
W/System.err? at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:894)
W/System.err? at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
W/System.err? at android.app.BackStackRecord.run(BackStackRecord.java:834)
W/System.err? at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1452)
W/System.err? at android.app.Activity.performStart(Activity.java:6005)
W/System.err? at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2288)
W/System.err? at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
W/System.err? at android.app.ActivityThread.access$800(ActivityThread.java:151)
W/System.err? at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
W/System.err? at android.os.Handler.dispatchMessage(Handler.java:102)
W/System.err? at android.os.Looper.loop(Looper.java:135)
W/System.err? at android.app.ActivityThread.main(ActivityThread.java:5254)
W/System.err? at java.lang.reflect.Method.invoke(Native Method)
W/System.err? at java.lang.reflect.Method.invoke(Method.java:372)
W/System.err? at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
W/System.err? at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Run Code Online (Sandbox Code Playgroud)

你能告诉我如何"解锁"像这样的锁定相机吗?

pan*_*ski 18

"无法连接到相机服务"意味着您(或其他)相机应用程序无法正常释放相机.在我开发应用程序的过程中偶尔会发生这种情况.我要尝试的第一件事是从手机附带的默认相机应用程序打开相机(只需点击"相机"按钮).如果无法打开,那么唯一的选择就是重启手机.

这是猜测,但你的代码可能有一个只偶尔出现的错误,直到现在才通过纯粹的运气出现.如果它仍然存在,请查看与"如何在Android中正确释放相机"相关的问题.他们帮我解决了这个问题.


And*_*tto 14

从Android 6.0(API级别23)开始,用户在应用程序运行时向应用程序授予权限,而不是在安装应用程序时.此方法简化了应用安装过程,因为用户在安装或更新应用时无需授予权限.它还使用户可以更好地控制应用程序的功能; 例如,用户可以选择让相机应用程序访问相机,但不能访问设备位置.用户可以通过转到应用程序的"设置"屏幕随时撤消权限.http://developer.android.com/training/permissions/requesting.html

  • 对我来说,尝试运行示例应用程序就是这种情况.它从未要求许可,相机视图不起作用.转到**设置>应用> yourappname>权限**并启用相机权限. (6认同)