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)
实际上,我只是想知道即使指定了EXTRA_OUTPUT而导致您从相机接收到小图像的错误是否已在FroYo中修复。不幸的是,我甚至没有去测试它 有没有人遇到类似的问题?
谢谢,
Steff
答案 0 :(得分:3)
看起来相机正在请求的EGLConfig与Froyo中的s / w GL渲染器当前支持的EGLConfig之间存在错误。看看您是否可以申请RGB565 EGL配置。
此外,以下更改对我有用。它基本上从EGLConfig中删除了Stencil缓冲区,因为在Froyo的s / w 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);
答案 1 :(得分:0)
模拟器2.2已损坏 请为此投票:code.google.com/p/android/issues/detail?id=9376,以便我们得到解决方案。
解决方法:创建一个以2.1为目标的AVD。