当我在 android studio 上运行几乎任何应用程序时,我的 logcat 都会充满如下消息:
"? E/GnssHAL_GnssInterface: gnssSvStatusCb: a: 输入 svInfo.flags 为 8 ? E/GnssHAL_GnssInterface: gnssSvStatusCb: b: 输入 svInfo.flags 为 8"
这是什么?我的应用程序有问题吗?
我需要启用 GPS 并且无法禁用位置服务,因此我在 logcats 搜索过滤器中使用了带有负向前瞻的正则表达式:
^(?!.*input svInfo\.flags is 8)
这将选择不包含错误消息末尾的所有内容(“输入 svInfo.flags 为 8”),但显示其他所有内容。
搜索过滤器应位于日志输出的正上方。您可能需要激活一个显示“regex”的选择框。
您的应用程序不太可能有任何问题。问题可能是Logcat中“过滤器配置”中的设置。它有点隐藏作为一个设置,并且有自动切换到“无过滤器”选择的习惯。如果您知道原因,请告诉我。
要忽略问题中的调试错误:在 Logcat 面板中,在过滤器输入和正则表达式选项复选框后的下拉列表中选择配置过滤器选项。
可能最好的选项是“仅显示选定的应用程序”。
确实解决了关闭定位服务的问题。 当我尝试从 Web API 获取数据时会发生这种情况,现在我通过关闭位置来解决。
退出并从模拟器中的多任务中删除应用程序,然后从 android studio 重新运行,为我解决了这个问题。我假设这是一个 Android studio 错误。
在Windows下,您可以通过转到Android Studio中的Terminal选项卡,然后cd到您的SDK位置平台工具来禁用LogCat中的消息,通常位于
cd C:\Users\<YourUsername>\AppData\Local\Android\Sdk\platform-tools
然后您可以设置可见性,因此使用标准设置您不会看到消息:
.\adb shell setprop log.tag.GnssHAL_GnssInterface S
解决方案主要来自ChatGPT。
这基本上适用于任何日志标签。只需将 log.tag 后面的内容更改为您不想看到的 logtag 即可。然后您还可以在标准安装中禁用可见性。
此修复有两种可能的解决方案,
要么
您可以在运行应用程序的模拟器中禁用位置服务
或
创建一个新的虚拟设备并在硬件配置文件中禁用GPS