为什么安卓模拟器相机会突然停止运行?

9
我正在使用Android 2.2(API Level 8)。在清单文件中启用了相机。当我尝试使用模拟器提供的相机图标时,它运行了几秒钟,显示一个在黑白棋盘周围移动的灰色框,然后出现以下错误消息:

抱歉!应用程序相机(进程com.android.camera)意外停止。请重试。

当然,再试一次是没有帮助的。我正在使用提供的模拟器相机,以比较其行为与我正在开发的相机应用程序。为什么Android模拟器相机会意外停止?


2
这是Android中最大的谜之一...你最好不要对模拟器相机进行任何测试。它并不总是正常工作。 - Cristian
5个回答

4
模拟器相机质量很差。

1
要获取更多详细信息,请从主机命令行运行“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"


0
我想,这是因为模拟器没有真正的相机,硬件是由你所说的棋盘格模拟的。因为没有真正的硬件驱动程序,它很可能会尝试检查功能或设置无法完成的功能,因为模拟的硬件不支持它。你最好调试相机或自己编译它,并添加一些调试输出来找出到底发生了什么。

0

0

我已经意识到,在API级别4(Android 1.6)及以下,模拟器上的相机模拟是稳定的,不会崩溃。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接