Android5.0 Bitmap.copyPixelsFromBuffer崩溃,“调用没有当前上下文的OpenGL ES API”

时间:2014-12-09 08:41:07

标签: opengl-es android-5.0-lollipop

我想将视图的快照保存到文件中,但出现错误。 我的代码如下:

View decor = ***; //

int width = decor.getWidth();
int height = decor.getHeight();
Bitmap bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);

Canvas canvas = new Canvas(bitmap);
decor.draw(canvas);

int bytes = bitmap.getByteCount() + 8;
ByteBuffer buffer = ByteBuffer.allocate(bytes);
buffer.putInt(width);
buffer.putInt(height);
bitmap.copyPixelsToBuffer(buffer);
byte[] array = buffer.array();

但是bitmap.copyPixelsToBuffer(缓冲区);会崩溃。

错误是这样的:

12-09 08:36:43.107:E / libEGL(14642):调用没有当前上下文的OpenGL ES API(每个线程记录一次)

此错误仅在Android 5.0上发生,新平台是否有任何更改?我知道android 5.0使用ThreadedRender渲染表面,我该如何处理这个问题?非常感谢!!!

1 个答案:

答案 0 :(得分:0)

即使我面临同样的问题!似乎在pre-lollipop版本中,上下文泄漏并且默认使用(我假设)。但是使用棒棒糖,明确地需要创建或传递上下文!

希望这些有帮助! https://stackoverflow.com/a/27092070