【问题标题】:Android camera2 app: "app passed NULL surface"Android camera2 应用程序:“应用程序通过 NULL 表面”
【发布时间】:2015-03-13 13:37:04
【问题描述】:

我正在尝试使用较新的 camera2 API 编写自己的相机应用。 在这一点上,我只是想让应用程序在模拟 Nexus 5 的固定 640x480 SurfaceView 上显示相机开始。

这是我从 Logcat 得到的错误,以及相关代码: http://pastebin.com/sESf6C1p

我真的不知道这里出了什么问题,即使经过大量调试和一遍又一遍地阅读 API 文档。我发现一些证据表明我应该在调用我尝试使用 SystemClock.sleep(1000) 的 createCaptureSession (Android Camera - app passed NULL surface) 之前添加延迟,但无济于事。也不知道如何处理“eglCreateContext: EGL error: 0x3005”。

我在surfaceCreated 之后运行的surfaceChanged 回调中调用createCaptureSession,所以应该全部设置surface 不是吗?我不明白为什么 SDK 在内部传递一个空表面。

感谢任何提示!

【问题讨论】:

  • “应用程序通过 NULL 表面”是调试级别的消息。失败是来自android.hardware.camera2.legacy.SurfaceTextureRenderer.configureEGLContext 的 IllegalStateException,这似乎与 EGL 上下文有关。您是否在启用 GPU 仿真的情况下运行?您是否在真实设备上试用过您的应用?

标签: android android-camera


【解决方案1】:

原来错误是因为模拟的 Nexus 5 不支持 GL。它在我的 Nexus 9 上运行良好(调试日志打印“相机已配置!”)。

如果没有启用“使用主机 GPU”设置,我无法启动模拟器,但这是另一回事。我只会在真正的硬件上运行。

【讨论】:

    猜你喜欢
    • 2015-07-31
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多