【发布时间】:2013-05-21 08:57:33
【问题描述】:
这可能是一个高级问题,因为我在开发适用于 Android 的相机应用方面有相当多的经验,并且具备正确的基础知识。在某些手机上,打电话时
Camera.open(0);
我得到一个 RuntimeException。我的相机应用程序适用于大多数手机(1000 多种 Android 设备类型),但在少数(大约 50 多种设备类型)上失败。它在不同设备上似乎也不一致,这意味着该应用程序将始终在相同型号的设备上工作或失败。例如。该应用程序适用于某些 Galaxy S2,但在其他 S2 上失败。
我有几个 logcat:
在 Android 4.0.4 上
05-26 12:22:26.150 I/CameraService( 85): Opening camera 0<br/>
05-26 12:22:26.150 I/NvOmxCamera( 85): HAL_camera_device_open: open camera 0<br/>
05-26 12:22:26.150 D/NvOmxCamera( 85): HAL_openCameraHardware() use_camera_1st_source=1<br/>
05-26 12:22:26.150 E/NvOmxCamera( 85): Invalid camera ID 0, hardware does not support simultaneous CSI camera use<br/>
05-26 12:22:26.150 E/CameraService( 85): Could not open camera 0: -38<br/>
05-26 12:22:26.150 I/CameraService( 85): Destroying camera 0<br/>
05-26 12:22:26.160 D/AndroidRuntime(25895): Shutting down VM<br/>
05-26 12:22:26.160 W/dalvikvm(25895): threadid=1: thread exiting with uncaught exception (group=0x40a5a1f8)<br/>
05-26 12:22:26.180 E/Crittercism(25895): java.lang.RuntimeException: Fail to connect to camera service<br/>
05-26 12:22:26.180 E/Crittercism(25895): at android.hardware.Camera.native_setup(Native Method)<br/>
05-26 12:22:26.180 E/Crittercism(25895): at android.hardware.Camera.<init>(Camera.java:304)<br/>
05-26 12:22:26.180 E/Crittercism(25895): at android.hardware.Camera.open(Camera.java:264)<br/>
在 Android 2.3.6 上
05-26 11:27:16.984 W/CameraSwitch( 7088): open main camera<br/>
05-26 11:27:16.984 W/CameraSwitch( 7088): no file - can't switch camera<br/>
05-26 11:27:16.994 D/CameraService( 66): CameraService::connect E (pid 7088, client 0xad08)<br/>
05-26 11:27:16.994 D/CameraService( 66): CameraService::connect X (pid 7088, new client 0xad08) rejected. (old pid 7173, old client 0x3ca30)<br/>
05-26 11:27:16.994 D/CameraService( 66): The old client is dead!<br/>
05-26 11:27:16.994 D/AndroidRuntime( 7088): Shutting down VM<br/>
05-26 11:27:16.994 W/dalvikvm( 7088): threadid=1: thread exiting with uncaught exception (group=0x400259f8)<br/>
05-26 11:27:17.094 D/dalvikvm( 7088): GC_FOR_MALLOC freed 15803 objects / 957392 bytes in 93ms<br/>
05-26 11:27:17.114 E/Crittercism( 7088): java.lang.RuntimeException: Fail to connect to camera service<br/>
05-26 11:27:17.114 E/Crittercism( 7088): at android.hardware.Camera.native_setup(Native Method)<br/>
05-26 11:27:17.114 E/Crittercism( 7088): at android.hardware.Camera.<init>(Camera.java:118)<br/>
05-26 11:27:17.114 E/Crittercism( 7088): at android.hardware.Camera.open(Camera.java:91)
<br/>
我已经尝试了很多东西,但我就是不知道问题出在哪里。这行代码是要执行的第一行之一(Camera.open()),因此我的代码中不太可能出现错误。任何关于为什么这条线在某些相机上失败的任何见解都会非常有帮助。
如果相关,我将从服务中打开相机。我可以发布诊断此问题所需的任何信息。谢谢。
【问题讨论】:
标签: android camera runtimeexception