Droid的媒体服务器死在camera.takePicture() [英] Droid's mediaserver dies on 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屋!