2013-05-26 30 views
5

Đây có thể là câu hỏi nâng cao vì tôi có một chút kinh nghiệm với việc phát triển ứng dụng máy ảnh cho Android và có những điều cơ bản đúng. Trên một số điện thoại, khi gọiRuntimeException sử dụng Camera.open()

Camera.open(0); 

Tôi nhận được RuntimeException. Ứng dụng máy ảnh của tôi hoạt động trên hầu hết các điện thoại (hơn 1000 loại thiết bị Android) nhưng không hoạt động trên một số ít (khoảng hơn 50 loại thiết bị). Nó cũng có vẻ không nhất quán giữa các thiết bị có nghĩa là ứng dụng sẽ luôn hoạt động hoặc không hoạt động trên cùng một kiểu thiết bị. Ví dụ. các ứng dụng hoạt động trên một số Galaxy S2 nhưng không thành công trên S2 khác.

Tôi có vài logcats:


Trên 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/> 

Trên 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/> 

Tôi đã cố gắng rất nhiều thứ nhưng tôi chỉ không thể tìm ra vấn đề là gì. Dòng mã này là một trong những dòng đầu tiên để thực hiện (Camera.open()) vì vậy không chắc lỗi trong mã của tôi. Bất kỳ thông tin chi tiết nào về lý do tại sao dòng này không thành công trên một số máy ảnh sẽ rất hữu ích.

Nếu có liên quan, tôi mở máy ảnh từ một dịch vụ. Tôi có thể đăng bất kỳ thông tin nào cần thiết để chẩn đoán vấn đề này. Cảm ơn.

Trả lời

1

bạn có bao gồm các quyền và tính năng của máy ảnh trong ứng dụng của mình không?
nếu có, có thể máy ảnh đang được sử dụng trong một ứng dụng khác.

từ android developers:
"Ném RuntimeException nếu mở máy ảnh không thành công (ví dụ: nếu máy ảnh đang sử dụng một trình quản lý chính sách thiết bị khác đã tắt máy ảnh)."

+0

Không, đây không phải là vấn đề với quyền. Như tôi đã nói, ứng dụng của tôi hoạt động trên hơn 1000 loại thiết bị Android. Tôi có câu hỏi, ứng dụng Camera có thể đang sử dụng ứng dụng khác như thế nào. Nói đúng ra có thể có một dịch vụ nền đã khóa máy ảnh nhưng không chắc nhiều người dùng sẽ có một máy ảnh được sử dụng bởi một dịch vụ nền mà họ không biết. – user2421790

Các vấn đề liên quan