Flutter中BufferQueue已废弃日志频繁输出的屏蔽方法求助
解决Flutter中BufferQueueProducer日志持续输出的问题
以下是几种适配你当前环境的可行方案,可快速屏蔽或减少该干扰日志:
1. Android Studio Logcat直接过滤(最快生效)
- 打开Logcat面板,在搜索框输入过滤规则:
-tag:BufferQueueProducer,即可直接排除该标签的所有日志 - 若需保留其他错误日志,可使用更精确的规则:
level:Error -tag:BufferQueueProducer - 点击搜索框右侧的「Save Filter」按钮保存配置,后续调试可直接切换使用
2. Android原生代码拦截日志
从Android原生层拦截该日志输出,彻底避免其进入控制台:
- 在
android/app/src/main/kotlin/[你的包名]/路径下创建MyApplication.kt文件,内容如下:
import android.app.Application import android.util.Log import android.util.LogFilter import android.util.LogPrinter class MyApplication : Application() { override fun onCreate() { super.onCreate() val logFilter = object : LogFilter() { override fun isLoggable(tag: String?, priority: Int, msg: String?): Boolean { // 过滤BufferQueueProducer标签的日志 return tag != "BufferQueueProducer" } } Log.setOut(LogPrinter(Log.VERBOSE, logFilter)) } }
- 修改
android/app/src/main/AndroidManifest.xml,在<application>标签中添加android:name=".MyApplication",指定自定义Application类
3. 优化谷歌地图组件生命周期
针对谷歌地图加载时触发日志的场景,优化组件生命周期可减少日志输出:
- 在使用
GoogleMap的StatefulWidget中,确保在dispose方法正确释放地图控制器:
@override void dispose() { _mapController?.dispose(); super.dispose(); }
- 避免频繁创建和销毁地图组件,尽量通过状态切换复用已加载的地图实例
内容的提问来源于stack exchange,提问作者Muzammil Hassan
相关产品推荐
相关产品推荐

