I just posted a fix on stackoverflow, let me know if it works: http://stackoverflow.com/questions/6535652/takepicture-hangs-on-android-2-3-3/6886993#6886993
On Jul 20, 3:51 pm, musfiq <[email protected]> wrote: > I get the similar kind of error in 2.3.4 but don't know how to fix > it. > > On Jun 30, 10:01 am, dingding dangdang <[email protected]> wrote: > > > > > > > > > I have some codes of takeing picture working at Android 2.1 and 2.2. > > But these codes broke at Android 2.3. > > After spending a time to fix this issue in vain, I would like to ask for > > help here. > > > My code flow to take picture is like this: > > > 1. create a class Camlayer extends SurfaceView > > > public class CamLayer extends SurfaceView implements > > SurfaceHolder.Callback { > > > private void init(Context context){ > > // Install a SurfaceHolder.Callback so we get notified when > > the > > // underlying surface is created and destroyed. > > mHolder = getHolder(); > > mHolder.addCallback(this); > > mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); > > > mCamera = Camera.open(); > > } > > > public CamLayer(Context context) { > > super(context); > > init(context); > > } > > > public CamLayer(Context context, AttributeSet attrs) { > > super(context, attrs); > > init(context); > > } > > > public void surfaceChanged(SurfaceHolder holder, int format, int > > w, int h) { > > Log.i(TAG+".surfaceChanged", "being called!"); > > Log.i(TAG+".surfaceChanged", "w="+w); > > Log.i(TAG+".surfaceChanged", "h="+h); > > > if (isPreviewRunning) { > > mCamera.stopPreview(); > > } > > > try { > > mCamera.setPreviewDisplay(holder); > > mCamera.setPreviewCallback(mPreviewCallback); > > } catch (IOException e) { > > Log.e(TAG+".surfaceCreated", > > "mCamera.setPreviewDisplay(holder);"); > > } > > > Camera.Parameters p = mCamera.getParameters(); > > setOptimalSize(p, w, h, SIZEOFPREVIEW); > > setOptimalSize(p, w, h, SIZEOFPICTURE); > > mCamera.setParameters(p); > > > mCamera.startPreview(); > > isPreviewRunning = true; > > } > > > public voidtakePicture(){ > > Log.i(TAG+".takePicture", "being called!"); > > mCamera.takePicture(null, null, mPictureCallback); > > Log.i(TAG+".takePicture", "call ended!"); > > } > > > 2. CamLayer.takePicture() will be called by external classes to start > > > 3. The problem is that at Android2.3.3, thetakePicturewill hang, so an > > ANR problem is found. In /data/anr/traces.txt, below are found. As u can > > see, the native_takePicture never returns. > > > DALVIK THREADS: > > > (mutexes: tll=0 tsl=0 tscl=0 ghl=0 hwl=0 hwll=0) > > > "main" prio=5 tid=1 NATIVE > > > | group="main" sCount=1 dsCount=0 obj=0x40022170 self=0xce68 > > > | sysTid=2411 nice=0 sched=0/0 cgrp=default handle=-1345006464 > > > at android.hardware.Camera.native_takePicture(Native Method) > > > at android.hardware.Camera.takePicture(Camera.java:746) > > > at android.hardware.Camera.takePicture(Camera.java:710) > > > at oms.cj.tube.camera.CamLayer.takePicture(CamLayer.java:256) > > > at oms.cj.tube.camera.DefineColor.takePicture(DefineColor.java:61) > > > at oms.cj.tube.camera.DefineColor.onKeyUp(DefineColor.java:71) > > > at android.view.KeyEvent.dispatch(KeyEvent.java:1280) > > > at android.app.Activity.dispatchKeyEvent(Activity.java:2078) > > > at > > com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(Pho > > neWindow.java:16 > > 66) > > at > > android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2571) > > > at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2546) > > > at android.view.ViewRoot.handleMessage(ViewRoot.java:1878) > > > at android.os.Handler.dispatchMessage(Handler.java:99) > > > at android.os.Looper.loop(Looper.java:123) > > > at android.app.ActivityThread.main(ActivityThread.java:3691) > > > at java.lang.reflect.Method.invokeNative(Native Method) > > > at java.lang.reflect.Method.invoke(Method.java:507) > > > at > > com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: > > 841) > > > at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) > > > at dalvik.system.NativeStart.main(Native Method) > > > Is there anybody having the same problem? And know how to fix it? -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

