我正在制作一款需要使用相机闪光灯的应用。我的代码将低于此帖子,但是当我尝试打开相机时,我得到java.lang.RuntimeException: Fail to connect to camera service
。调用Camera.open();
方法时会出现错误。
Camera camera = Camera.open();
Camera.Parameters parameters = camera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
camera.startPreview();
我尝试重启手机,关闭所有应用,但我仍然遇到同样的错误。
打开前有没有办法释放/关闭相机?我不知道如何关闭一个空对象。
屏幕方向不是问题,因为应用只允许垂直方向。
默认的相机应用有效,但不适用于此应用。
错误(完整):
java.lang.RuntimeException: Fail to connect to camera service
at android.hardware.Camera.native_setup(Native Method)
at android.hardware.Camera.<init>(Camera.java:319)
at android.hardware.Camera.open(Camera.java:292)
at com.bensuniverse.flashlightx.processes.CameraHandler.toggleFlash(CameraHandler.java:21)
at com.bensuniverse.flashlightx.MainActivity$1.onClick(MainActivity.java:78)
at android.view.View.performClick(View.java:4106)
at android.view.View$PerformClick.run(View.java:17052)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5059)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:2)
确保正确释放相机对象。如果您正在尝试重新打开相机对象(如果已经打开),则会因堆栈跟踪中提到的错误而崩溃:
Camera camera = Camera.open();
Camera.Parameters parameters = camera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
camera.startPreview();
// Stop camera preview and release it.
camera.stopPreview();
camera.release();
答案 1 :(得分:0)
我也面临类似的问题,原因是我的另一个应用程序使用了相机。但我忘记在该应用程序中释放资源。因此,当应用程序即将关闭时,不要忘记释放资源。 (onStop / onDestroy())。 相机硬件是必须仔细管理的共享资源,因此您的应用程序不会与可能也想要使用它的其他应用程序发生冲突。