2010-10-28 13 views
9

J'utilise Android 2.2 (niveau API 8). La caméra est activée dans le manifeste. Lorsque j'essaie l'icône de la caméra fournie par le modèle de l'émulateur, elle affiche pendant quelques secondes une boîte grise se déplaçant autour d'un damier noir et blanc, puis disparaît avec le message d'erreur:Pourquoi la caméra de l'émulateur Android s'arrête-t-elle de façon inattendue?

Désolé! L'application Camera (processus com.android.camera) s'est arrêtée de façon inattendue. Veuillez réessayer.

Essayer à nouveau, bien sûr, n'aide pas. J'utilise la caméra d'émulation fournie pour comparer le comportement avec une application de caméra sur laquelle je travaille. Pourquoi la caméra de l'émulateur Android s'arrête-t-elle de façon inattendue?

+2

Ceci est l'un des plus grands mystères dans Android ... vous feriez mieux de ne rien tester contre l'appareil photo de l'émulateur. Ça ne marche pas toujours bien. – Cristian

Répondre

4

La caméra de l'émulateur est floconneuse au mieux.

0

J'imagine que parce que l'émulateur n'a pas de caméra réelle, le matériel est simulé par la case à cocher dont vous parlez. Parce qu'il n'y a pas de pilote matériel pour de vrai, il essaye probablement de vérifier les capacités, ou de définir des fonctionnalités qui ne peuvent pas être effectuées parce que le matériel simulé ne le supporte pas. Le mieux est de déboguer l'appareil photo ou de le compiler vous-même et d'ajouter une sortie de débogage pour savoir exactement ce qui se passe.

0

Cela fonctionne-t-il dans 2.1 et avant?

Dans la perspective DDMS je peux voir l'exception montré ici:

Emulator's camera built-in app buggy in Froyo/2.2?

bien que je ne l'ai pas essayé le changement de code suggéré dans l'article.

Il pourrait juste être que l'appareil photo de l'émulateur est floconneuse :)

1

Pour obtenir plus de détails run « plate-forme -tools/adb logcat » de la ligne de commande hôte. Le problème de base semble être la caméra pensant qu'il y a plusieurs clients connectés. La caméra fixe également la rotation de paysage, mais après plantage ne retrait:

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 

Voir aussi la question « 4799183 »

0

j'ai réalisé que la simulation de la caméra sur l'émulateur est stable sur le niveau de l'API 4 (Android 1.6) et ci-dessous sans se briser.