Встроенное приложение камеры эмулятора глючит в Froyo / 2.2? - PullRequest
6 голосов
/ 01 июня 2010

Камера эмулятора отлично работала для съемки в 2.1 Эклере. Очевидно, что не получалось записывать видео.
Теперь запуск приложения, которое работало просто на 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)

На самом деле я просто хотел посмотреть, исправлена ​​ли ошибка, из-за которой вы получали небольшое изображение с камеры, даже если было указано EXTRA_OUTPUT, во FroYo. К сожалению, я даже не могу это проверить.
Кто-нибудь сталкивается с похожими проблемами?

Спасибо
Стеф

Ответы [ 2 ]

3 голосов
/ 25 июня 2010

Похоже, есть несоответствие между EGLConfig, который запрашивает камера, и EGLConfigs, в настоящее время поддерживаемым рендерером S / W GL, который поставляется в Froyo. Посмотрите, можете ли вы запросить RGB565 EGL Config.

Более того, у меня сработали следующие изменения. Он в основном удаляет буфер трафарета из EGLConfig, так как эта конфигурация вообще не поддерживается в рендерере S / W GL в Froyo. Добавьте исходную конфигурацию обратно, если вы тестируете на реальных устройствах, таких как Droid.

diff --git a / src / com / android / camera / ui / GLRootView.java b / src / com / android / camera / ui / GLRootView.java
индекс 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);  
0 голосов
/ 13 августа 2011

эмулятор 2.2 сломан.
Пожалуйста, проголосуйте за это: code.google.com / p / android / questions / detail? Id = 9376 , чтобы мы могли получить исправление.

Обходной путь: создайте AVD с целевым значением 2,1.

...