Droid的媒体服务器死在camera.takePicture() [英] Droid's mediaserver dies on camera.takePicture()

查看:198
本文介绍了Droid的媒体服务器死在camera.takePicture()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在摩托罗拉Droid,固件2.1 UPDATE1,内核29年2月9日 - omap1,构建#ESE81

当试图拍照,媒体服务器死亡与分割 错。

我试图把 takePicture 在一个计时器,并运行它在几秒钟后 摄像头的初始化检查竞态条件,但没有任何变化。只是 调用 Camera.open()不会导致飞机坠毁。此外,调用 Camera.open() 原因我认为是的自动对焦马达,使一种滴答滴答的声音。

code,打破:

 进口android.app.Activity;
进口android.os.Bundle;

公共final类ChopperMain延伸活动{
    公共无效的onCreate(包savedInstanceState){
    尝试 {
        摄像头摄像头= Camera.open();
        赶上(例外五){
            e.printStackTrace();
        }
        camera.takePicture(
                新Camera.ShutterCallback(){
                    公共无效onShutter(){
                        ;
                    }
                },
                新Camera.PictureCallback(){
                    公共无效onPictureTaken(byte []的数据,摄像头摄像头){
                        ;
                    }
                },
                新Camera.PictureCallback(){
                    公共无效onPictureTaken(byte []的数据,摄像头摄像头){
                        ;
                    }
                },
            新PictureCallback(){
                公共无效onPictureTaken(byte []的数据,摄像头摄像头){
                    的System.out.println(ただ。);
                }
            }
        });

    }
    赶上(例外五){
        e.printStackTrace();
    }
    }
}
 

调试日志:

  D / CameraHal(10158):CameraSettings构造
D / CameraHal(10158):CameraHal构造
D / CameraHal(10158):模型ID:Droid的
D / CameraHal(10158):软件ID 2.1 UPDATE1
D / dalvikvm(988):GC释放2个对象/在215ms 56个字节
D / ViewFlipper(1074):updateRunning()mVisible =假,mStarted = TRUE,MUSER present =假,mRunning = FALSE
I / HPAndroidHAL(10158):版本2988.建造时间:2009年10月26日:11:21:55。
D / CameraHal(10158):19缺省参数
D / CameraHal(10158):即时变焦/ 1:0。当前缩放级别/ 1:0
D / CameraHal(10158):CameraHal构造函数退出OK
D / CameraService(10158):客户端::客户端X(PID 10400)
D / CameraService(10158):CameraService ::连接X和
D / CameraService(10158):takePicture(PID 10400)
I / DEBUG(10159):*** *** *** *** *** *** *** *** *** *** *** *** *** *** * ** ***
I / DEBUG(10159):建立指纹:Verizon公司/田鼠/肖尔斯/肖尔斯:2.1 UPDATE1 / ESE81 / 29593:用户/释放键
I / DEBUG(10159):PID:10158,TID:10158>>> /系统/斌/媒体服务器<<<
I / DEBUG(10159):11(SIGSEGV),故障地址00000008
I / DEBUG(10159):R0,R1 00000000 00000000 R2 a969030c R3 a9d1bfe0
I / DEBUG(10159):R4 00045eb0 R5 0000eb10 R6 000153a0 R7 a9c89fd2
I / DEBUG(10159):R8 00000000 R9 00000000 10 00000000 FP 00000000
I / DEBUG(10159):IP a969085c SP bec4fba0 LR a9689c65 PC a9d1bfde CPSR 60000030
I / DEBUG(10159):#00件0001bfde /system/lib/libutils.so
I / DEBUG(10159):#01件00009c62 /system/lib/libcamera.so
I / DEBUG(10159):#02件00007b0c /system/lib/libcameraservice.so
I / DEBUG(10159):#03件00021f98 /system/lib/libui.so
I / DEBUG(10159):#04件00015514 /system/lib/libbinder.so
I / DEBUG(10159):#05件00018dd8 /system/lib/libbinder.so
I / DEBUG(10159):#06件00018fa6 /system/lib/libbinder.so
I / DEBUG(10159):#07件000087d2 /系统/斌/媒体服务器
I / DEBUG(10159):#08件0000c228 /system/lib/libc.so
I / DEBUG(10159):
I / DEBUG(10159):约PC code:
I / DEBUG(10159):a9d1bfcc bd1061e3 f7f3b510 bd10e97e 4d17b570
I / DEBUG(10159):a9d1bfdc 6886a300 460418ed fff4f7ff d10a4286
I / DEBUG(10159):a9d1bfec 46234913 20054a13 f06f1869 18aa040a
I / DEBUG(10159):
I / DEBUG(10159):约LR code:
I / DEBUG(10159):a9689c54 e0240412 0204f8d0 050cf104 edf0f7fd
I / DEBUG(10159):a9689c64 f7fd4628 f8d4ecf2 b1533204 f852681a
I / DEBUG(10159):a9689c74 18581c0c 7101f504 ed82f7fd f8c42000
I / DEBUG(10159):
I / DEBUG(10159):堆栈:
I / DEBUG(10159):bec4fb60 4000902c的/ dev /粘合剂
I / DEBUG(10159):bec4fb64 a9d19675 /system/lib/libutils.so
I / DEBUG(10159):bec4fb68 00002bb4
I / DEBUG(10159):bec4fb6c a9d1b26f /system/lib/libutils.so
I / DEBUG(10159):bec4fb70 bec4fbbc [堆栈]
I / DEBUG(10159):bec4fb74 00095080 [堆]
I / DEBUG(10159):bec4fb78 a9c8c028 /system/lib/libcameraservice.so
I / DEBUG(10159):bec4fb7c a9c8c028 /system/lib/libcameraservice.so
I / DEBUG(10159):bec4fb80 00015390 [堆]
I / DEBUG(10159):bec4fb84 a9c89fd2 /system/lib/libcameraservice.so
I / DEBUG(10159):bec4fb88 00045ebc [堆]
I / DEBUG(10159):bec4fb8c afe0f110 /system/lib/libc.so
I / DEBUG(10159):bec4fb90 00000000
I / DEBUG(10159):bec4fb94 afe0f028 /system/lib/libc.so
I / DEBUG(10159):bec4fb98 df002777
I / DEBUG(10159):bec4fb9c e3a070ad
I / DEBUG(10159):#00 bec4fba0 00045eb0 [堆]
I / DEBUG(10159):bec4fba4 00045ebc [堆]
I / DEBUG(10159):bec4fba8 000153a0 [堆]
I / DEBUG(10159):bec4fbac a9689c65 /system/lib/libcamera.so
I / DEBUG(10159):#01 bec4fbb0 a9c8c028 /system/lib/libcameraservice.so
I / DEBUG(10159):bec4fbb4 00015390 [堆]
I / DEBUG(10159):bec4fbb8 000153a0 [堆]
I / DEBUG(10159):bec4fbbc a9c87b0f /system/lib/libcameraservice.so
I / DEBUG(10159):debuggerd自杀释放僵尸!
I / DEBUG(10426):debuggerd:2010年3月22日十七时31分05秒
W / MediaPlayer的(1021):MediaPlayer的服务器死了!
我/的ServiceManager(984):服务media.audio_flinger'死亡
我/的ServiceManager(984):服务media.player'死亡
我/的ServiceManager(984):服务media.camera'死亡
我/的ServiceManager(984):服务media.audio_policy'死亡
W /摄像头(10400):相机服务器死了!
W /摄像头(10400):ICamera死亡
E /摄像机(10400):错误100
我/的System.out(10400):相机错误,code 100
W / AudioSystem(1021):AudioFlinger服务器死了!
W / AudioSystem 1021:AudioPolicyService服务器死了!
I /(10425)的ServiceManager:0xad08
E / AudioPostProcessor(10425):
E / AudioPostProcessor(10425):AudioMgr错误:无法打开文件涨幅/data/ap_gain.bin
E / AudioPostProcessor(10425):
E / AudioPostProcessor(10425):AudioMgr错误:无法读取/数据收益/ coeffs
E / AudioPostProcessor(10425):音频coeffs初始化成功。
I / CameraService(10425):CameraService开始:PID = 10425
D / Audio_Unsolicited(10425):在readyToRun
D / Audio_Unsolicited(10425):创建套接字成功10
I / AudioFlinger(10425):AudioFlinger的线程0x11c30准备运行
E / AudioService(1021):媒体服务器死亡。
E / AudioService(1021):媒体服务器启动。
W / AudioPolicyManager(10425):setPhoneState()设置相同的状态0
 

解决方案

您缺少最必要的code与相机工作下面是一个示例项目是比较完整的。

On Motorola Droid, Firmware 2.1-update1, Kernel 2.9.29-omap1, Build # ESE81

When attempting to take a picture, mediaserver dies with a segmentation fault.

I've tried putting takePicture in a timer and running it a few seconds after camera initialization to check for race conditions, but no change. Just calling Camera.open() doesn't cause the crash. Also, calling Camera.open() causes what I think is the autofocus motor to make a sort of ticking sound.

Code that breaks:

import android.app.Activity;
import android.os.Bundle;

public final class ChopperMain extends Activity {
    public void onCreate(Bundle savedInstanceState) {
    try {
        Camera camera = Camera.open();
        catch (Exception e) {
            e.printStackTrace();
        }
        camera.takePicture(
                new Camera.ShutterCallback() {
                    public void onShutter() {
                        ;
                    }
                }, 
                new Camera.PictureCallback() {
                    public void onPictureTaken(byte[] data, Camera camera) {
                        ;
                    }
                },
                new Camera.PictureCallback() {
                    public void onPictureTaken(byte[] data, Camera camera) {
                        ;
                    }
                },
            new PictureCallback() {
                public void onPictureTaken(byte[] data, Camera camera) {
                    System.out.println("Ta da.");
                }
            }
        });

    }
    catch (Exception e) {
        e.printStackTrace();
    }
    }
}

Debug Log:

D/CameraHal(10158): CameraSettings constructor
D/CameraHal(10158): CameraHal constructor
D/CameraHal(10158): Model ID: Droid
D/CameraHal(10158): Software ID 2.1-update1
D/dalvikvm(  988): GC freed 2 objects / 56 bytes in 215ms
D/ViewFlipper( 1074): updateRunning() mVisible=false, mStarted=true, mUserPresent=false, mRunning=false
I/HPAndroidHAL(10158): Version 2988.  Build Time: Oct 26 2009:11:21:55.
D/CameraHal(10158): 19 default parameters
D/CameraHal(10158): Immediate Zoom/1:0. Current zoom level/1:0
D/CameraHal(10158): CameraHal constructor exited ok
D/CameraService(10158): Client::Client X (pid 10400)
D/CameraService(10158): CameraService::connect X
D/CameraService(10158): takePicture (pid 10400)
I/DEBUG   (10159): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   (10159): Build fingerprint: 'verizon/voles/sholes/sholes:2.1-update1/ESE81/29593:user/release-keys'
I/DEBUG   (10159): pid: 10158, tid: 10158  >>> /system/bin/mediaserver <<<
I/DEBUG   (10159): signal 11 (SIGSEGV), fault addr 00000008
I/DEBUG   (10159):  r0 00000000  r1 00000000  r2 a969030c  r3 a9d1bfe0
I/DEBUG   (10159):  r4 00045eb0  r5 0000eb10  r6 000153a0  r7 a9c89fd2
I/DEBUG   (10159):  r8 00000000  r9 00000000  10 00000000  fp 00000000
I/DEBUG   (10159):  ip a969085c  sp bec4fba0  lr a9689c65  pc a9d1bfde  cpsr 60000030
I/DEBUG   (10159):          #00  pc 0001bfde  /system/lib/libutils.so
I/DEBUG   (10159):          #01  pc 00009c62  /system/lib/libcamera.so
I/DEBUG   (10159):          #02  pc 00007b0c  /system/lib/libcameraservice.so
I/DEBUG   (10159):          #03  pc 00021f98  /system/lib/libui.so
I/DEBUG   (10159):          #04  pc 00015514  /system/lib/libbinder.so
I/DEBUG   (10159):          #05  pc 00018dd8  /system/lib/libbinder.so
I/DEBUG   (10159):          #06  pc 00018fa6  /system/lib/libbinder.so
I/DEBUG   (10159):          #07  pc 000087d2  /system/bin/mediaserver
I/DEBUG   (10159):          #08  pc 0000c228  /system/lib/libc.so
I/DEBUG   (10159): 
I/DEBUG   (10159): code around pc:
I/DEBUG   (10159): a9d1bfcc bd1061e3 f7f3b510 bd10e97e 4d17b570 
I/DEBUG   (10159): a9d1bfdc 6886a300 460418ed fff4f7ff d10a4286 
I/DEBUG   (10159): a9d1bfec 46234913 20054a13 f06f1869 18aa040a 
I/DEBUG   (10159): 
I/DEBUG   (10159): code around lr:
I/DEBUG   (10159): a9689c54 e0240412 0204f8d0 050cf104 edf0f7fd 
I/DEBUG   (10159): a9689c64 f7fd4628 f8d4ecf2 b1533204 f852681a 
I/DEBUG   (10159): a9689c74 18581c0c 7101f504 ed82f7fd f8c42000 
I/DEBUG   (10159): 
I/DEBUG   (10159): stack:
I/DEBUG   (10159):     bec4fb60  4000902c  /dev/binder
I/DEBUG   (10159):     bec4fb64  a9d19675  /system/lib/libutils.so
I/DEBUG   (10159):     bec4fb68  00002bb4  
I/DEBUG   (10159):     bec4fb6c  a9d1b26f  /system/lib/libutils.so
I/DEBUG   (10159):     bec4fb70  bec4fbbc  [stack]
I/DEBUG   (10159):     bec4fb74  00095080  [heap]
I/DEBUG   (10159):     bec4fb78  a9c8c028  /system/lib/libcameraservice.so
I/DEBUG   (10159):     bec4fb7c  a9c8c028  /system/lib/libcameraservice.so
I/DEBUG   (10159):     bec4fb80  00015390  [heap]
I/DEBUG   (10159):     bec4fb84  a9c89fd2  /system/lib/libcameraservice.so
I/DEBUG   (10159):     bec4fb88  00045ebc  [heap]
I/DEBUG   (10159):     bec4fb8c  afe0f110  /system/lib/libc.so
I/DEBUG   (10159):     bec4fb90  00000000  
I/DEBUG   (10159):     bec4fb94  afe0f028  /system/lib/libc.so
I/DEBUG   (10159):     bec4fb98  df002777  
I/DEBUG   (10159):     bec4fb9c  e3a070ad  
I/DEBUG   (10159): #00 bec4fba0  00045eb0  [heap]
I/DEBUG   (10159):     bec4fba4  00045ebc  [heap]
I/DEBUG   (10159):     bec4fba8  000153a0  [heap]
I/DEBUG   (10159):     bec4fbac  a9689c65  /system/lib/libcamera.so
I/DEBUG   (10159): #01 bec4fbb0  a9c8c028  /system/lib/libcameraservice.so
I/DEBUG   (10159):     bec4fbb4  00015390  [heap]
I/DEBUG   (10159):     bec4fbb8  000153a0  [heap]
I/DEBUG   (10159):     bec4fbbc  a9c87b0f  /system/lib/libcameraservice.so
I/DEBUG   (10159): debuggerd committing suicide to free the zombie!
I/DEBUG   (10426): debuggerd: Mar 22 2010 17:31:05
W/MediaPlayer( 1021): MediaPlayer server died!
I/ServiceManager(  984): service 'media.audio_flinger' died
I/ServiceManager(  984): service 'media.player' died
I/ServiceManager(  984): service 'media.camera' died
I/ServiceManager(  984): service 'media.audio_policy' died
W/Camera  (10400): Camera server died!
W/Camera  (10400): ICamera died
E/Camera  (10400): Error 100
I/System.out(10400): Camera error, code 100
W/AudioSystem( 1021): AudioFlinger server died!
W/AudioSystem( 1021): AudioPolicyService server died!
I/        (10425): ServiceManager: 0xad08
E/AudioPostProcessor(10425): 
E/AudioPostProcessor(10425): AudioMgr Error:Failed to open gains file /data/ap_gain.bin
E/AudioPostProcessor(10425): 
E/AudioPostProcessor(10425): AudioMgr Error:Failed to  read gains/coeffs from /data 
E/AudioPostProcessor(10425): Audio coeffs init success. 
I/CameraService(10425): CameraService started: pid=10425
D/Audio_Unsolicited(10425): in readyToRun
D/Audio_Unsolicited(10425): Create socket successful 10 
I/AudioFlinger(10425): AudioFlinger's thread 0x11c30 ready to run
E/AudioService( 1021): Media server died.
E/AudioService( 1021): Media server started.
W/AudioPolicyManager(10425): setPhoneState() setting same state 0

解决方案

You are missing most of the code necessary to work with a Camera. Here is a sample project that is more complete.

这篇关于Droid的媒体服务器死在camera.takePicture()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆