带有不同消息的 Flutter 调试垃圾邮件控制台

Isa*_*sak 2 debugging android dart flutter

在我的 OnePlus 6 上调试我的 flutter 应用程序时,我收到了很多奇怪的消息。当我单击按钮、滑动等时会出现这些消息。我在 Android Pie 上。

一些消息:

E/libc    (10995): Access denied finding property 
"vendor.debug.egl.swapinterval"
W/1.gpu   (10995): type=1400 audit(0.0:2806794): avc: denied { read } for 
name="u:object_r:vendor_default_prop:s0" dev="tmpfs" ino=21671 
scontext=u:r:untrusted_app_27:s0:c512,c768 
tcontext=u:object_r:vendor_default_prop:s0 tclass=file permissive=0
E/libc    (10995): Access denied finding property 
"vendor.debug.egl.swapinterval"
E/libc    (10995): Access denied finding property 
"vendor.debug.egl.swapinterval"
E/libc    (10995): Access denied finding property 
"vendor.debug.egl.swapinterval"
E/libc    (10995): Access denied finding property 
"vendor.debug.egl.swapinterval"
W/1.gpu   (10995): type=1400 audit(0.0:2806805): avc: denied { read } for 
Run Code Online (Sandbox Code Playgroud)

我如何摆脱它们,该应用程序似乎运行良好。很难阅读杂乱无章的 print() 消息。

Art*_*ken 5

解决方法是使用 Flutter 的软件渲染器,与 Flutter 的默认硬件加速 OpenGL 渲染器相比,它以降低图形性能为代价来消除这些错误:

$ flutter run --enable-software-rendering
Run Code Online (Sandbox Code Playgroud)

不过,需要明确的是,这不是 Flutter 错误。这是OnePlus 6(可能还有 Google Pixel 3)上的 Android Pie 上的系统库(libEGLlibgralloc?)的问题,最终需要设备供应商和/或 Google 进行修复。有迹象表明,至少在 2018 年 10 月下旬,安装最新的系统更新可能已为某些用户解决了此问题。

基于一项旨在修复 Google 新 Pixel 3 XL 设备(代号“crosshatch”)上相同问题的提交,潜在的问题似乎是 Android Pie 本身或供应商对 Android 的定制引入了对vendor.debug.egl.swapinterval构建属性的新依赖,但此属性访问被安全策略拒绝。修复方法是更改​​安全策略以允许启动动画和应用程序访问此属性。

什么是vendor.debug.egl.swapinterval?它控制显示帧速率。引用eglSwapIntervalAPI的 Khronos Group 文档,此时间间隔:

指定在发生缓冲区交换之前显示的最小视频帧数。

正如在 XDA 论坛上的粗略搜索所显示的,模组制作者多年来一直在调整这个参数。