Yeah, I also noticed that. No idea what the lines about a 'camera
switch' are about ...

I also tried the API demos (one of the samples that came with the
Android SDK), and found to my surprise that Google's own camera
preview example also crashed on the HTC Desire. Hope it's not a bug in
the Desire's firmware ... The camera and camcorder apps that came with
the device work perfectly though.

It would be great if other people with a HTC Desire could try the
Camera Preview API demo to verify that they experience the same
problem.

Cheers,

-- Jo

On 20 apr, 23:45, Streets Of Boston <flyingdutc...@gmail.com> wrote:
> mmmmmm that looks strange.
>
> From the stack-trace it (almost) looks like you're trying to access a
> 2ndcameraon the device. I have no idea of how that could happen or
> why it would even try to do so.
> But, then again, i could be completely wrong and of no help to you at
> all.. :)
>
> ============
> W/CameraSwitch( 3801): open maincamera
> W/CameraSwitch( 3801): no file - can't switchcamera
> E/CameraSwitch( 3801): setSwitchFile failed: /sys/android_camera2/
> htcwc
> E/CameraSwitch( 3801): java.io.FileNotFoundException: /sys/
> android_camera2/htcwc
> ============
>
> On Apr 20, 10:32 am, Jo Vermeulen <jo.vermeu...@gmail.com> wrote:
>
> > Hi,
>
> > I have a problem with a simple application that captures images from
> > thecamera. It works on the emulator, but throws an exception when I
> > run it on the HTC Desire.
>
> > Here are the relevant log messages:
>
> > W/CameraSwitch( 3801): open maincamera
> > W/CameraSwitch( 3801): no file - can't switchcamera
> > E/CameraSwitch( 3801): setSwitchFile failed: /sys/android_camera2/
> > htcwc
> > E/CameraSwitch( 3801): java.io.FileNotFoundException: /sys/
> > android_camera2/htcwc
>
> > E/CameraSwitch( 3801):  at
> > org.apache.harmony.luni.platform.OSFileSystem.open(OS
> > FileSystem.java:244)
> > E/CameraSwitch( 3801):  at
> > java.io.FileOutputStream.<init>(FileOutputStream.java
> > :97)
> > E/CameraSwitch( 3801):  at java.io.FileWriter.<init>(FileWriter.java:
> > 58)
> > E/CameraSwitch( 3801):  at
> > android.hardware.CameraSwitch.setSwitchFile(CameraSwi
> > tch.java:44)
> > E/CameraSwitch( 3801):  at
> > android.hardware.CameraSwitch.openMainCamera(CameraSw
> > itch.java:22)
> > E/CameraSwitch( 3801):  at android.hardware.Camera.open(Camera.java:
> > 90)
> > E/CameraSwitch( 3801):  at
> > be.uhasselt.edm.research.sherlock.CameraPreview.surfa
> > ceCreated(SherlockActivity.java:51)
> > E/CameraSwitch( 3801):  at
> > android.view.SurfaceView.updateWindow(SurfaceView.jav
> > a:454)
> > E/CameraSwitch( 3801):  at
> > android.view.SurfaceView.dispatchDraw(SurfaceView.jav
> > a:287)
> > E/CameraSwitch( 3801):  at
> > android.view.ViewGroup.drawChild(ViewGroup.java:1583)
>
> > E/CameraSwitch( 3801):  at
> > android.view.ViewGroup.dispatchDraw(ViewGroup.java:13
> > 12)
> > E/CameraSwitch( 3801):  at android.view.View.draw(View.java:6538)
> > E/CameraSwitch( 3801):  at
> > android.widget.FrameLayout.draw(FrameLayout.java:352)
>
> > E/CameraSwitch( 3801):  at
> > android.view.ViewGroup.drawChild(ViewGroup.java:1585)
>
> > E/CameraSwitch( 3801):  at
> > android.view.ViewGroup.dispatchDraw(ViewGroup.java:13
> > 12)
> > E/CameraSwitch( 3801):  at android.view.View.draw(View.java:6538)
> > E/CameraSwitch( 3801):  at
> > android.widget.FrameLayout.draw(FrameLayout.java:352)
>
> > E/CameraSwitch( 3801):  at com.android.internal.policy.impl.PhoneWindow
> > $DecorVie
> > w.draw(PhoneWindow.java:1866)
> > E/CameraSwitch( 3801):  at android.view.ViewRoot.draw(ViewRoot.java:
> > 1364)
> > E/CameraSwitch( 3801):  at
> > android.view.ViewRoot.performTraversals(ViewRoot.java
> > :1118)
> > E/CameraSwitch( 3801):  at
> > android.view.ViewRoot.handleMessage(ViewRoot.java:165
> > 0)
> > E/CameraSwitch( 3801):  at
> > android.os.Handler.dispatchMessage(Handler.java:99)
> > E/CameraSwitch( 3801):  at android.os.Looper.loop(Looper.java:123)
> > E/CameraSwitch( 3801):  at
> > android.app.ActivityThread.main(ActivityThread.java:4
> > 595)
> > E/CameraSwitch( 3801):  at
> > java.lang.reflect.Method.invokeNative(Native Method)
> > E/CameraSwitch( 3801):  at java.lang.reflect.Method.invoke(Method.java:
> > 521)
> > E/CameraSwitch( 3801):  at com.android.internal.os.ZygoteInit
> > $MethodAndArgsCalle
> > r.run(ZygoteInit.java:860)
> > E/CameraSwitch( 3801):  at
> > com.android.internal.os.ZygoteInit.main(ZygoteInit.ja
> > va:618)
> > E/CameraSwitch( 3801):  at dalvik.system.NativeStart.main(Native
> > Method)
> > D/CameraService(   57): CameraService::connect E (pid 3801, client
> > 0x267f0)
> > D/CameraService(   57): Client::Client E (pid 3801)
> > V/QualcommCameraHardware(   57): openCameraHardware: call
> > createInstance
> > D/QualcommCameraHardware(   57): createInstance: E
> > V/QualcommCameraHardware(   57): constructor EX
> > V/QualcommCameraHardware(   57): startCamera E
> > V/QualcommCameraHardware(   57): loading liboemcamera at 0xb00140d0
> > I/QualcommCameraHardware(   57): Set main cam and main cam only
> > I/mm-camera-mmap(   57): set sensor selection :0
> > I/QualcommCameraHardware(   57): Open Device node : /dev/msm_camera/
> > control0
> > I/mm-camera-config(   57): cam_conf fd cfgctrl.camfd:0
> > I/mm-camera-config(   57): Open config device node : /dev/msm_camera/
> > config0
> > I/        (   57): [AWB Calibration]:ctrlfd:26
> > I/        (   57): [AWB Calibration] cfg.fuse_id_word1:0x0
> > I/        (   57): [AWB Calibration] cfg.fuse_id_word2:0x0
> > I/        (   57): [AWB Calibration] cfg.fuse_id_word3:0x45002
> > I/        (   57): [AWB Calibration] cfg.fuse_id_word4:0x22e645
> > I/        (   57): [AWB Calibration] rg_ratio_GS_table[0]:0.733340
> > I/        (   57): [AWB Calibration] rg_ratio_GS_table[1]:0.733340
> > I/        (   57): [AWB Calibration] rg_ratio_GS_table[2]:0.754883
> > I/        (   57): [AWB Calibration] bg_ratio_GS_table[0]:0.601600
> > I/        (   57): [AWB Calibration] bg_ratio_GS_table[1]:0.601600
> > I/        (   57): [AWB Calibration] bg_ratio_GS_table[2]:0.598633
> > I/        (   57): [AWB Calibration] sfuse.fuse_id_word1:0x0
> > I/        (   57): [AWB Calibration] sfuse.fuse_id_word2:0x0
> > I/        (   57): [AWB Calibration] sfuse.fuse_id_word3:0x45002
> > I/        (   57): [AWB Calibration] sfuse.fuse_id_word4:0x22e645
> > I/        (   57): [AWB Calibration] fuse_id : 0x0, 0x0, 0x45002,
> > 0x22e645
> > I/        (   57): [AWB Calibration] fail to read /data/awb_cal
> > I/        (   57): [AWB Calibration] read from file OK: /sys/
> > android_camera_awb_
> > cal/awb_ca
> > I/        (   57): [AWB Calibration] read all c1b ,ok=1
> > I/        (   57): [AWB Calibration] read all 323 ,ok=1
> > I/        (   57): [AWB Calibration] read all 230 ,ok=1
> > I/        (   57): [AWB Calibration] read all 0 ,ok=1
> > I/        (   57): [AWB Calibration] read all 0 ,ok=1
> > I/        (   57): [AWB Calibration] read all 45002 ,ok=1
> > I/        (   57): [AWB Calibration] read all 22e645 ,ok=1
> > I/        (   57): [AWB Calibration] read all b538fe81 ,ok=1
> > I/        (   57): [AWB Calibration] check sum=b538fe81, OK
> > I/        (   57): [AWB Calibration] caBuff[0]:0x00000c1b
> > I/        (   57): [AWB Calibration] caBuff[1]:0x00000323
> > I/        (   57): [AWB Calibration] caBuff[2]:0x00000230
> > I/        (   57): [AWB Calibration] caBuff[3]:0x00000000
> > I/        (   57): [AWB Calibration] caBuff[4]:0x00000000
> > I/        (   57): [AWB Calibration] caBuff[5]:0x00045002
> > I/        (   57): [AWB Calibration] caBuff[6]:0x0022e645
> > I/        (   57): [AWB Calibration] caBuff[7]:0xb538fe81
> > I/        (   57): [AWB Calibration] fuse_id_word1:0x00000000
> > I/        (   57): [AWB Calibration] fuse_id_word2:0x00000000
> > I/        (   57): [AWB Calibration] fuse_id_word3:0x00045002
> > I/        (   57): [AWB Calibration] fuse_id_word4:0x0022e645
> > I/        (   57): [AWB Calibration] caBuff[0]:3099
> > I/        (   57): [AWB Calibration] valid bit and fuseID pass, use
> > new white po
> > ints
> > I/        (   57): [AWB Calibration] use light version: v3
> > I/mm-camera-aec(   57): Touch AEC  == numRegions:256
> > I/mm-camera-aec(   57): Touch AEC aecCtrl->aec_state.aec_algo:1
> > I/QualcommCameraHardware(   57): startCamera: camsensor name s5k3e2fx,
> > flash 1
> > V/QualcommCameraHardware(   57): startCamera X
> > V/QualcommCameraHardware(   57): initDefaultParameters E
> > V/QualcommCameraHardware(   57): setParameters: E params = 0x4af24
> > V/QualcommCameraHardware(   57): requested preview size 720 x 480
> > V/QualcommCameraHardware(   57): requested picture size 1024 x 768
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 21,
> > length 4
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 15,
> > length 4
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 14,
> > length 4
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 49,
> > length 4
> > I/QualcommCameraHardware(   57): Setting Zoom is 0
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 2,
> > length 4
> > I/QualcommCameraHardware(   57): Setting Contrast is 5
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 6,
> > length 4
> > I/QualcommCameraHardware(   57): Setting Brightness is 3
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 7,
> > length 4
> > I/QualcommCameraHardware(   57): Setting Saturation is 5
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 11,
> > length 4
> > I/QualcommCameraHardware(   57): Setting Sharpness is 10
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 9,
> > length 4
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 12,
> > length 4
> > I/mm-camera-ctrlcmd(   57): md.d.aec_mode.aec_mode:1
> > I/mm-camera-aec(   57): Touch AEC  == numRegions:256
> > I/mm-camera-aec(   57): Touch AEC aecCtrl->aec_state.aec_algo:1
> > D/QualcommCameraHardware(   57): not defined touch-focus yet, or AP
> > without touc
> > h-focus function
> > I/QualcommCameraHardware(   57): Before Setting coordinate x:360 y:240
> > I/QualcommCameraHardware(   57): Setting coordinate x:2 y:2
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 55,
> > length 28
> > I/mm-camera8x vfe(   57): vfe_set_coordinate x:2 y:2
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 26,
> > length 4
> > D/mm-camera-ctrlcmd(   57): md.d.aec_iso_mode = 0
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 57,
> > length 4
> > D/QualcommCameraHardware(   57): virtual android::status_t
> > android::QualcommCame
> > raHardware::setParameters(const android::CameraParameters&),
> > final_rc=0
> > V/QualcommCameraHardware(   57): setParameters: X
> > V/QualcommCameraHardware(   57): initDefaultParameters X
> > D/QualcommCameraHardware(   57): createInstance: X created
> > hardware=0x4af20
> > D/CameraService(   57): Client::Client X (pid 3801)
> > D/CameraService(   57): CameraService::connect X
> > D/CameraService(   57): setPreviewDisplay(0x58418) (pid 3801)
> > I/CameraService(   57): OLAWORK
> > getParameters(antibanding=auto;antibanding-value
> > s=off,50hz,60hz,auto;brightness=3;brightness-def=3;brightness-
> > max=6;brightness-m
> > in=0;contrast=5;contrast-def=5;contrast-max=10;contrast-
> > min=0;effect=none;effect
> > -values=none,mono,negative,solarize,sepia,posterize,aqua;flash-
> > mode=off;flash-mo
> > de-values=off,auto,on;focus-mode=auto;focus-mode-
> > values=auto,infinity;iso=auto;i
> > so-values=auto,deblur,100,200,400,800,1250;jpeg-quality=100;jpeg-
> > thumbnail-heigh
> > t=384;jpeg-thumbnail-quality=90;jpeg-thumbnail-width=512;max-
> > zoom=5;meter-mode=m
> > eter-center;meter-mode-values=meter-average,meter-center,meter-
> > spot;picture-form
> > at=jpeg;picture-format-values=jpeg;picture-size=1024x768;picture-size-
> > values=259
> > 2x1952,2592x1728,2592x1552,2560x1920,2560x1712,2048x1536,2048x1360,2048x121 
> > ­6,201
> > 6x1344,1600x1200,1584x1056,1280x960,1280x848,1280x768,1248x832,1024x768,640 
> > ­x480,
> > 640x416,640x384,624x416,512x384,400x400,272x272;preview-
> > format=yuv420sp;preview-
> > format-values=yuv420sp;preview-frame-rate=15;preview-
> > size=720x480;preview-size-v
> > alues=1
> > D/CameraService(   57): setParameters(sharpness-max=30;zoom=0;taking-
> > picture-zoo
> > m=0;zoom-supported=true;sharpness-
> > min=0;sharpness=10;contrast=5;whitebalance=aut
> > o;jpeg-quality=100;preview-format-values=yuv420sp;jpeg-thumbnail-
> > quality=90;prev
> > iew-format=yuv420sp;preview-size=320x508;iso=auto;meter-mode=meter-
> > center;flash-
> > mode-values=off,auto,on;preview-frame-rate=15;focus-mode-
> > values=auto,infinity;jp
> > eg-thumbnail-width=512;saturation-def=5;preview-size-
> > values=1280x720,800x480,720
> > x480,640x480,576x432,480x320,400x240,384x288,352x288,320x240,272x272,240x24 
> > ­0,240
> > x160,176x144;smart-contrast=off;picture-size-
> > values=2592x1952,2592x1728,2592x155
> > 2,2560x1920,2560x1712,2048x1536,2048x1360,2048x1216,2016x1344,1600x1200,158 
> > ­4x105
> > 6,1280x960,1280x848,1280x768,1248x832,1024x768,640x480,640x416,640x384,624x 
> > ­416,5
> > 12x384,400x400,272x272;contrast-min=0;brightness-
> > min=0;antibanding=auto;taking-p
> > icture-zoom-min=0;saturation-min=1;contrast-max=10;taking-picture-zoom-
> > max=20;co
> > ntrast-def=5;brightness-max=6;brightness=3;jpeg-thumbnail-
> > height=384;focus-mode=
> > auto;sh
> > V/QualcommCameraHardware(   57): setParameters: E params = 0x40a60d08
> > V/QualcommCameraHardware(   57): requested preview size 320 x 508
> > E/QualcommCameraHardware(   57): Invalid preview size requested:
> > 320x508
> > E/QualcommCameraHardware(   57): virtual android::status_t
> > android::QualcommCame
> > raHardware::setParameters(const android::CameraParameters&): 2109, rc
> > = -22
> > V/QualcommCameraHardware(   57): requested picture size 1024 x 768
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 21,
> > length 4
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 15,
> > length 4
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 14,
> > length 4
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 49,
> > length 4
> > I/QualcommCameraHardware(   57): Setting Zoom is 0
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 2,
> > length 4
> > I/QualcommCameraHardware(   57): Setting Contrast is 5
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 6,
> > length 4
> > I/QualcommCameraHardware(   57): Setting Brightness is 3
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 7,
> > length 4
> > I/QualcommCameraHardware(   57): Setting Saturation is 5
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 11,
> > length 4
> > I/QualcommCameraHardware(   57): Setting Sharpness is 10
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 9,
> > length 4
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 12,
> > length 4
> > I/mm-camera-ctrlcmd(   57): md.d.aec_mode.aec_mode:1
> > I/mm-camera-aec(   57): Touch AEC  == numRegions:256
> > I/mm-camera-aec(   57): Touch AEC aecCtrl->aec_state.aec_algo:1
> > D/QualcommCameraHardware(   57): not defined touch-focus yet, or AP
> > without touc
> > h-focus function
> > I/QualcommCameraHardware(   57): Before Setting coordinate x:360 y:240
> > I/QualcommCameraHardware(   57): Setting coordinate x:2 y:2
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 55,
> > length 28
> > I/mm-camera8x vfe(   57): vfe_set_coordinate x:2 y:2
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 26,
> > length 4
> > D/mm-camera-ctrlcmd(   57): md.d.aec_iso_mode = 0
> > V/QualcommCameraHardware(   57): native_set_parm: fd 12, type 57,
> > length 4
> > D/QualcommCameraHardware(   57): virtual android::status_t
> > android::QualcommCame
> > raHardware::setParameters(const android::CameraParameters&),
> > final_rc=-22
> > V/QualcommCameraHardware(   57): setParameters: X
> > D/dalvikvm(  377): GC freed 189 objects / 9440 bytes in 87ms
> > I/WindowManager(   75): Setting rotation to 1, animFlags=0
> > I/ActivityManager(   75): Config changed: { scale=1.0 imsi=0/0
> > loc=en_NL touch=3
> >  keys=1/1/2 nav=3/1 orien=2 layout=34}
> > D/PhoneApp(  153): updateProximitySensorMode: state = IDLE
> > D/PhoneApp(  153): updateProximitySensorMode: lock already released.
> > D/BackupManagerService(   75): Now awaiting backup for 1 participants:
> > D/BackupManagerService(   75):     +
> > BackupRequest{app=ApplicationInfo{46678b88
> > com.android.providers.settings} full=false}
> > agent=com.android.providers.settings
> > .SettingsBackupAgent
> > I/CalendarProvider(  258): updateCalendarNameByLocale
> > I/CalendarProvider(  258): updateCalendarNameByLocale
> > I/CalendarProvider(  258): update locale:NLD
> > I/CalendarProvider(  258): Locale doesn't change, so return it
>
> > And this is my code:
>
> > public class SherlockActivity extends Activity {
> >         private CameraPreview _preview;
>
> >     /** Called when the activity is first created. */
> >     @Override
> >     public void onCreate(Bundle savedInstanceState) {
> >         super.onCreate(savedInstanceState);
>
> >         // Hide the window title.
> >         requestWindowFeature(Window.FEATURE_NO_TITLE);
>
> >         // create our preview view and set it as the content of the
> > activity.
> >         _preview = new CameraPreview(this);
> >         setContentView(_preview);
> >     }
>
> > }
>
> > class CameraPreview extends SurfaceView implements
> > SurfaceHolder.Callback {
> >         SurfaceHolder _holder;
> >        Camera_camera;
>
> >         CameraPreview(Context context) {
> >                 super(context);
>
> >                 // Install a SurfaceHolder.Callback so we get notified when
> >                 // the underlying surface is created and destroyed.
> >                 _holder = getHolder();
> >                 _holder.addCallback(this);
> >                 _holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
> >         }
>
> >         public void surfaceCreated(SurfaceHolder holder) {
> >                 // The Surface has been created, acquire thecameraand
> >                 // tell it where to draw.
> >                 _camera =Camera.open();
> >                 try {
> >                         _camera.setPreviewDisplay(holder);
> >                 } catch (IOException exception) {
> >                         _camera.release();
> >                         _camera = null;
> >                         // TODO: more exception handling logic
> >                 }
> >         }
>
> >         public void surfaceDestroyed(SurfaceHolder holder) {
> >                 // Surface will be destroyed when we return, so stop the 
> > preview.
> >                 // Because the CameraDevice object is not a shared 
> > resource, it's
> > very
> >                 // important to release it when the activity is paused.
> >                 _camera.stopPreview();
> >                 _camera.release();
> >                 _camera = null;
> >         }
>
> >         public void surfaceChanged(SurfaceHolder holder, int format, int w,
> > int h) {
> >                 // Now that the size is known, set up thecameraparameters 
> > and
> > begin
> >                 // the preview.
> >                Camera.Parameters parameters = _camera.getParameters();
> >                 parameters.setPreviewSize(w, h);
> >                 _camera.setParameters(parameters);
> >                 _camera.startPreview();
> >         }
>
> > }
>
> > I have used the correct <uses-permission> and <uses-feature> tags in
> > my manifest file:
>
> > <uses-permission android:name="android.permission.CAMERA" />
> > <uses-feature android:name="android.hardware.camera" />
> > <uses-feature android:name="android.hardware.camera.autofocus" />
>
> > Thanks in advance!
>
> > Cheers,
>
> > -- Jo
>
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Android Developers" group.
> > To post to this group, send email to android-developers@googlegroups.com
> > To unsubscribe from this group, send email to
> > android-developers+unsubscr...@googlegroups.com
> > For more options, visit this group 
> > athttp://groups.google.com/group/android-developers?hl=en
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to android-developers@googlegroups.com
> To unsubscribe from this group, send email to
> android-developers+unsubscr...@googlegroups.com
> For more options, visit this group 
> athttp://groups.google.com/group/android-developers?hl=en

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to