NEXUS 5 棒棒糖 5.1 SurfaceFlinger 错误

NEXUS 5 lollipop 5.1 SurfaceFlinger error

你好?有一个问题。 nexus5 lollipop5.1 的问题。 surfaceflinger有一个代码,通过使用来响应ScreenshotClient更新中的设备屏幕信息。 代码如下所示。

unsigned int sw, sh, xsize, gsize, stride;
... ...
ScreenshotClient sc;

sp<IBinder> display = SurfaceComposerClient::getBuiltInDisplay(ISurfaceComposer::eDisplayIdMain);

if( sc.update(display,Rect(), sw,sh, false) != NO_ERROR) {
    ... ...

    sc.release();

    return 0;
}
stride = sc.getStride();

mapbase = sc.getPixels();
... ...

以上代码,在其他棒棒糖版本运行正常。当然,同版本的nexus7也运行正常。 但是,nexus5 中的变化。我的代码可以参考,但继续代码循环是。并且因为您尝试继续屏幕。首先,我在 nexus5 中的代码运行正常。但是,当计数是一定的时候,update是不会在对方屏幕下传来return的错误。更多的 ...! complete完我的代码后,重新运行,之后又是一个好东西,到了一定数时出现同样的现象。如果你有能力谁知道这件事?

抱歉英文不是很好

我已经解决了。 ScreenshotClient scsp < IBinder > display 应声明为全局变量。如果声明 class 错误会发生多次。 (例子。它在要重复的函数中声明。)