2017-02-23 95 views
0

我想做一个简单的手电筒应用程序,当我测试时,应用程序崩溃。我认为尝试访问相机时出现了问题。有什么建议么?访问相机时发生崩溃?

W/CameraBase: An error occurred while connecting to camera: 0 
W/CameraBase: An error occurred while connecting to camera: 0 
W/CameraBase: An error occurred while connecting to camera: 0 
W/CameraBase: An error occurred while connecting to camera: 0 
W/CameraBase: An error occurred while connecting to camera: 0 
I/Camera2Mode: fail 
E/AndroidRuntime: FATAL EXCEPTION: main 

java.lang.RuntimeException: Fail to connect to camera service 
at android.hardware.Camera.open(Camera.java:479) 
at android.hardware.Camera.open(Camera.java:547) 
at android.view.View.performClick(View.java:5226) 
at android.widget.CompoundButton.performClick(CompoundButton.java:122) 
at android.view.View$PerformClick.run(View.java:21266) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95  
at android.os.Looper.loop(Looper.java:168) 
at android.app.ActivityThread.main(ActivityThread.java:5845) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797) 


at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687) 

D/Process: killProcess, pid=23317 
D/Process: com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException:113 java.lang.ThreadGroup.uncaughtException:693 java.lang.ThreadGroup.uncaughtException:690 
Disconnected from the target VM, address: 'localhost:8603', transport: 'socket' 
+1

请张贴你的清单代码。你给那些权限? –

+0

stackoverflow.com/questions/23904459/android-java-lang-runtimeexception-fail-to-connect-to-camera-service –

+1

尝试在清单中使用这两行 –

回答

1

我认为你需要把相机许可清单文件一样,可以链接到这个问题,这个

<uses-permission android:name="android.permission.CAMERA"/> 

其他的事情是指this链接

1

可以有两个问题。其一是允许这是很容易handle.Also要小心,而在许可你正在开发Android 6.0的应用程序办案就在清单中添加此:

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-feature android:name="android.hardware.camera" /> 
<uses-feature android:name="android.hardware.camera.autofocus"/> 

另一种是当你试图打开你的相机可能有是那个时候使用相机的另一个应用程序。 因此,为避免异常,您需要在try-catch块中打开相机。 这样的:

static Camera camera = null; 
    try{ 
     camera = Camera.open(); 
     } catch(Exception e) { 
     Log.e("Error", ""+e); 
    } 
1

添加到您的清单

<uses-permission android:name="android.permission.CAMERA"/> 

和SDK 23及以上

<uses-permission-sdk-23 android:name="android.permission.CAMERA"/> 
0

如果您的测试手机是6.0 +,你应该用你的代码的请求许可,否则你可以减少构建版本