Почему неожиданно останавливается камера эмулятора Android?

Я использую Android 2.2 (API уровня 8). Камера включена в манифесте. Когда я пытаюсь использовать иконку камеры, представленную моделью эмулятора, она запускается в течение нескольких секунд, показывая серое окно, перемещающееся по черно-белой шахматной доске, затем умирает с сообщением об ошибке:

Сожалею! Приложение Camera (процесс com.android.camera) неожиданно остановилось. Пожалуйста, попробуйте еще раз.

Повторить попытку, конечно, не помогает. Я использую предоставленную камеру эмулятора, чтобы сравнить поведение с приложением камеры, над которым я работаю. Почему неожиданно останавливается камера эмулятора Android?

Эмуляторная камера в лучшем случае шелушащаяся.

Чтобы получить более подробную информацию, запустите « platform-tools / adb logcat » из командной строки хоста. Основная проблема, похоже, заключается в том, что камера думает, что подключено несколько клиентов. Камера также устанавливает поворот на пейзаж, но после сбоя не удается установить его обратно:

I/ActivityManager( 70): Starting: Intent { act=android.media.action.IMAGE_CAPTURE cmp=com.android.camera/.Camera } from pid 875 I/ActivityManager( 70): Start proc com.android.camera for activity com.android.camera/.Camera: pid=888 uid=10031 gids={1006, 1015} I/WindowManager( 70): Setting rotation to 1, animFlags=1 I/ActivityManager( 70): Config changed: { scale=1.0 imsi=310/260 loc=en_US touch=3 keys=2/1/2 nav=3/1 orien=2 layout=34 uiMode=17 seq=22} V/CameraHolder( 888): open camera 0 W/CameraService( 34): CameraService::connect X (pid 888) rejected (existing client). E/CameraHolder( 888): fail to connect Camera E/CameraHolder( 888): java.lang.RuntimeException: Fail to connect to camera service E/CameraHolder( 888): at android.hardware.Camera.native_setup(Native Method) E/CameraHolder( 888): at android.hardware.Camera.<init>(Camera.java:258) E/CameraHolder( 888): at android.hardware.Camera.open(Camera.java:220) E/CameraHolder( 888): at com.android.camera.CameraHolder.open(CameraHolder.java:124) E/CameraHolder( 888): at com.android.camera.Camera.ensureCameraDevice(Camera.java:1608) E/CameraHolder( 888): at com.android.camera.Camera.startPreview(Camera.java:1660) E/CameraHolder( 888): at com.android.camera.Camera.access$5500(Camera.java:95) E/CameraHolder( 888): at com.android.camera.Camera$3.run(Camera.java:908) E/CameraHolder( 888): at java.lang.Thread.run(Thread.java:1019) W/dalvikvm( 888): threadid=11: thread exiting with uncaught exception (group=0x40015560) E/AndroidRuntime( 888): FATAL EXCEPTION: Thread-12 

См. Также вопрос " 4799183 "

Я бы подумал, потому что у эмулятора нет реальной камеры, аппаратное обеспечение моделируется с помощью checkerbox, о котором вы говорите. Поскольку нет реального аппаратного драйвера, он, скорее всего, пытается проверить возможности или установить функции, которые не могут быть выполнены, потому что имитируемое оборудование не поддерживает его. Лучше всего это отладить камеру или скомпилировать ее самостоятельно и добавить отладочный вывод, чтобы узнать, что именно происходит.

Работает ли он в 2.1 и более ранних версиях?

В перспективе DDMS я вижу приведенное здесь исключение:

Камера встроенного приложения эмулятора в Froyo / 2.2?

Хотя я не пробовал изменить код, предложенный в статье.

Просто может быть, что камера эмулятора flaky 🙂

Я понял, что имитация камеры на эмуляторе стабильна на уровне API 4 (Android 1.6) и ниже без сбоев.