You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Compose每秒更新屏幕触发OpenGLRenderer Davey异常日志排查

问题解决:Jetpack Compose 计时更新导致 OpenGLRenderer 异常日志刷屏

一、代码实现优化

你的代码功能正常,但可以改用更贴合Compose最佳实践的方式实现,既简化代码也能避免潜在的重组冗余:

使用produceState替代手动组合LaunchedEffect与mutableIntState,它是Compose专为协程生成状态设计的API,逻辑更清晰:

@Composable
fun timerUpdate(delayTime: Duration = 1.seconds): Int {
    return produceState(initialValue = 0) {
        while (true) {
            delay(delayTime)
            value++
        }
    }.value
}

@Composable
fun Greeting() {
    Text(text = timerUpdate().toString())
}

二、禁用异常日志的方法

如果优化后日志仍存在,可通过以下方式屏蔽这条刷屏日志:

1. adb 命令过滤

在终端执行日志命令时,直接排除OpenGLRenderer标签的输出:

adb logcat -s *:V -OpenGLRenderer:S

-OpenGLRenderer:S表示将该标签的日志级别设为静默,不再输出。

2. Android Studio Logcat 过滤

在Android Studio的Logcat面板中添加自定义过滤规则:

  • 点击右上角「Edit Filter Configuration」
  • 在「Log Tag」输入框填入正则表达式 ^((?!OpenGLRenderer).)*$,匹配不包含该标签的日志
  • 保存规则后即可屏蔽对应日志

3. 设备开发者选项调整

进入设备「开发者选项」,找到「OpenGL调试」相关开关关闭冗余日志;或调整「日志记录器缓冲区大小」,降低全局日志输出量。


内容的提问来源于stack exchange,提问作者Maxim Akristiniy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 16:00:01