gpt4 book ai didi

android - GetBufferLock 线程超时

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:13:03 26 4
gpt4 key购买 nike

我正在 Android Samsung galaxy TAB 10.1 上开发。我官方更新到4.0.4版本后经常报错:

11-01 17:04:35.382: E/gralloc(11657): GetBufferLock timed out for thread 11657 buffer 0x55 usage 0x33 LockState 1

并且设备立即重启。如果我正在调试自己的应用程序,此错误出现完全随机。

有什么建议吗?

附言

我唯一的一个无限绘画循环:

public void run() {
Canvas canvas = null;

while (true) {
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}

try {
synchronized (lock) {
if (!invalidated)
continue;
}

canvas = mHolder.lockCanvas();

synchronized (mHolder) {
onDraw(canvas);
}

synchronized (lock) {
invalidated = false;
}
} finally {
if (canvas != null) {
mHolder.unlockCanvasAndPost(canvas);
canvas = null;
}
}

synchronized (lock) {
if (painter == null)
break;
}
}
}

最佳答案

我猜是 GPU 内存出了问题,发生此错误时您是否在进行大量图形显示?

如果不是...也许另一个应用程序是。

值得检查 GPU 消耗量大的应用程序(可能是大量的动态壁纸?)并将其删除。然后重启应该可以解决这个问题。

还请注意,您永远不应该这样写:

while (true) {
}

至少添加一个运行标志:

while(running){
}

因此您可以在应用程序停止时将运行设置为 false。

关于android - GetBufferLock 线程超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13180016/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com