Flutter调试控制台持续输出CPU温度和DNS权限报错如何解决?
问题根因说明
I/GDPAndroid类型日志是安卓设备ROM自带的系统调试日志,由系统底层的温度采集模块输出,和应用层引入的Agora等第三方SDK无关联,无法通过修改应用代码完全关闭。E/libc类型的DNS读取权限报错,是安卓10及以上版本对系统属性读取做了权限限制,第三方应用默认没有权限读取net.dns1~net.dns4系统属性,通常由Native层依赖尝试获取系统DNS配置触发,属于非致命错误,不会影响应用正常功能运行。
可选解决方案
方案1:调试控制台日志过滤(最快生效)
在Android Studio或VS Code的调试控制台过滤栏输入对应规则即可屏蔽无关日志:
- 仅屏蔽当前报错日志,填入过滤规则:
!GDPAndroid !libc - 仅查看Flutter应用层输出日志,直接选择过滤标签为
Flutter即可
方案2:添加权限尝试修复DNS报错
在项目android/app/src/main/AndroidManifest.xml文件的manifest节点下添加网络相关权限:
<!-- 访问网络状态权限 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 网络访问权限 --> <uses-permission android:name="android.permission.INTERNET" />
如果添加权限后仍然有该报错,属于设备ROM的权限限制,无法从应用层完全解决,仅需按方案1过滤日志即可,不会影响应用正常使用和上架。
方案3:定位触发日志的第三方依赖
如果需要彻底根除日志输出,可按以下步骤排查:
- 创建空白Flutter项目运行,确认是否有相同日志输出,排除设备本身日志输出的影响
- 完全移除项目中Agora相关的所有依赖配置,重新运行验证日志是否消失,确认是否为Agora SDK残留触发
- 逐个移除项目中引入的其他第三方依赖,运行验证直到日志消失,即可定位触发日志的依赖,再对应查找该依赖的关闭日志配置即可
内容的提问来源于stack exchange,提问作者Simon wong
相关产品推荐
相关产品推荐

