jjzjj

android - Droid 的媒体服务器死于 camera.takePicture()

coder 2023-12-02 原文

在摩托罗拉 Droid 上,固件 2.1-update1,内核 2.9.29-omap1,构建号 ESE81

尝试拍照时,媒体服务器死于分段 错误。

我试过将 takePicture 放入计时器并在几秒钟后运行它 相机初始化以检查竞争条件,但没有变化。只是 调用 Camera.open() 不会导致崩溃。此外,调用 Camera.open() 导致我认为是自动对焦电机发出一种滴答声。

破坏的代码:

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();
    }
    }
}

调试日志:

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

最佳答案

您缺少使用相机 所需的大部分代码。 Here is a sample project那更完整。

关于android - Droid 的媒体服务器死于 camera.takePicture(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2734886/

有关android - Droid 的媒体服务器死于 camera.takePicture()的更多相关文章

  1. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  2. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  3. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  4. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  5. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  6. ruby-on-rails - 在 Rails 中调试生产服务器 - 2

    您如何在Rails中的实时服务器上进行有效调试,无论是在测试版/生产服务器上?我试过直接在服务器上修改文件,然后重启应用,但是修改好像没有生效,或者需要很长时间(缓存?)我也试过在本地做“脚本/服务器生产”,但是那很慢另一种选择是编码和部署,但效率很低。有人对他们如何有效地做到这一点有任何见解吗? 最佳答案 我会回答你的问题,即使我不同意这种热修补服务器代码的方式:)首先,你真的确定你已经重启了服务器吗?您可以通过跟踪日志文件来检查它。您更改的代码显示的View可能会被缓存。缓存页面位于tmp/cache文件夹下。您可以尝试手动删除

  7. 怎样用一台手机做自媒体? - 2

    其实做自媒体的成本并不高,入门只需要一部手机即可!在手机上找视频素材、使用手机剪辑视频、最后使用手机发布视频作品获得收益!方法并不难,今天这期内容就来给粉丝们分享一种小方法,每天稳定收益100-300,抓紧点赞收藏!1、找素材(1)使用手机拍摄自己喜欢的经典段落,使用程序把文案内容提取出来(2)也可以在豆瓣、知乎、微博等网站中找一些自己需要的文案素材(3)把文案进行润色修改,可以加入一些自己的观点(4)视频素材可以使用软件中自带的素材,也可以在素材网站中下载完整版的素材2、文案配音(1)把复制好的文案直接导入小程序中(2)调整音色、音调后一键合成音频即可(3)可以选择自己朗读配音,需要花一点时

  8. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  9. ruby - 我的 Ruby IRC 机器人没有连接到 IRC 服务器。我究竟做错了什么? - 2

    require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame

  10. ruby - Rails 开发服务器、PDFKit 和多线程 - 2

    我有一个使用PDFKit呈现网页的pdf版本的Rails应用程序。我使用Thin作为开发服务器。问题是当我处于开发模式时。当我使用“bundleexecrailss”启动我的服务器并尝试呈现任何PDF时,整个过程会陷入僵局,因为当您呈现PDF时,会向服务器请求一些额外的资源,如图像和css,看起来只有一个线程.如何配置Rails开发服务器以运行多个工作线程?非常感谢。 最佳答案 我找到的最简单的解决方案是unicorn.geminstallunicorn创建一个unicorn.conf:worker_processes3然后使用它:

随机推荐