Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
348 views
in Technique[技术] by (71.8m points)

android - Emulator's camera built-in app buggy in Froyo / 2.2?

the Emulator's camera worked fine for taking pictures in 2.1 Eclair. What did not work was recording videos, obviously.
Now running an app which worked merely flawless on 2.1 Emulator causes the camera app to crash. I fire up an intent to launch it:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(TEMP_PHOTO_FILE)));
startActivityForResult(intent, REQUEST_CAMERA);

This starts the camera app but after a few seconds it crashes. The output is:

06-01 09:57:15.593: DEBUG/libEGL(5212): egl.cfg not found, using default config
06-01 09:57:15.593: DEBUG/libEGL(5212): loaded /system/lib/egl/libGLES_android.so
06-01 09:57:15.733: ERROR/AndroidRuntime(5212): FATAL EXCEPTION: GLThread 11
06-01 09:57:15.733: ERROR/AndroidRuntime(5212): java.lang.IllegalArgumentException: No configs match configSpec
06-01 09:57:15.733: ERROR/AndroidRuntime(5212):     at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:760)
06-01 09:57:15.733: ERROR/AndroidRuntime(5212):     at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:916)
06-01 09:57:15.733: ERROR/AndroidRuntime(5212):     at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1246)
06-01 09:57:15.733: ERROR/AndroidRuntime(5212):     at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1116)

Actually I just wanted to see if the bug which made you receive a small image from the camera even though EXTRA_OUTPUT was specified has been fixed in FroYo. Unfortunately, I don't even get to test it.
Does anyone run into similiar issues?

Thanks,
Steff

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

It looks there's a mistmatch between the EGLConfig the Camera is requesting and the EGLConfigs currently supported by the s/w GL renderer that comes in Froyo. See if you can request an RGB565 EGL Config.

Moreover, the below changes worked for me. It basically remove the Stencil buffer out of the EGLConfig as that configuration seems to be not supported at all in the s/w GL renderer in Froyo. Add the original config back if you're testing on real devices such as the Droid.

diff --git a/src/com/android/camera/ui/GLRootView.java b/src/com/android/camera/ui/GLRootView.java
index d8ae0f8..545c66a

--- a/src/com/android/camera/ui/GLRootView.java  
+++ b/src/com/android/camera/ui/GLRootView.java  
@@ -174,7 +174,8 @@ public class GLRootView extends GLSurfaceView  

     private void initialize() {  
         mFlags |= FLAG_INITIALIZED;  
-        setEGLConfigChooser(8, 8, 8, 8, 0, 4);  
+        setEGLConfigChooser(8, 8, 8, 8, 0, 0);  
         getHolder().setFormat(PixelFormat.TRANSLUCENT);  
         setZOrderOnTop(true);  

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...