Froyo / 2.2中模拟器的相机内置应用程序存在故障?

6

模拟器的相机在2.1 Eclair版本中拍照时工作正常。但显然不能录制视频。
现在运行一个之前在2.1模拟器上完美运行的应用程序会导致相机应用程序崩溃。我启动一个意图来启动它:

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

这个代码启动了相机应用,但几秒钟后就崩溃了。输出结果如下:

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)

实际上,我只是想看看在FroYo中修复了使您即使指定了EXTRA_OUTPUT也收到小图像的错误吗?不幸的是,我甚至没有测试它。
有人遇到类似问题吗?

谢谢,
Steff

2个回答

3

看起来相机请求的EGLConfig与Froyo中自带的软件GL渲染器支持的EGLConfig存在不匹配。请尝试请求RGB565 EGL Config。

此外,以下更改对我有效。基本上是将模板缓冲区从EGLConfig中删除,因为在Froyo的软件GL渲染器中似乎根本不支持该配置。如果您正在测试像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);  

我在哪里可以找到这个文件?那个“a/src/…”在哪里?在Eclipse、SDK或Workspace文件夹中都找不到它。谷歌链接到了这个主题,还有其他多个人也找不到这个文件。 - James Cameron
1
@JamesCameron 源代码位于packages/apps/Camera文件夹中。在从源代码构建Android时,它是Android树的一部分。 - csanta

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接