我最近在我的应用的logcat中多次看到这个日志:I/Counters: exceeded sample count in FrameTime,我知道它来自Google地图。
你有什么想法吗?如何摆脱它?
我最近在我的应用的logcat中多次看到这个日志:I/Counters: exceeded sample count in FrameTime,我知道它来自Google地图。
你有什么想法吗?如何摆脱它?
在等待修复期间,您可以通过前往文件->设置->编辑器->常规->控制台并将“exceeded sample count in FrameTime”添加到列表“折叠包含以下内容的控制台行:”,来将其折叠起来(在Android Studio中)。
尝试在发布版本中关闭部分小部件的图层(例如,使用“myLocationEnabled”参数启用的“myLocation”层),然后再启用它们。还要确保在dispose方法中处理您的Google地图控制器(如果您在onMapCreated中获取它后将其存储在某个位置)。
根据错误和API文档,我可以大致了解到,GoogleMaps具有多个图层,每个图层需要在给定的帧时间内构建。由于多个图层增加了处理时间负担,可能会超过给定的帧时间并触发错误。
原因也可能包括调试版本没有优化,这确实影响了GoogleMaps包。我在真实设备上以持续不断的“I/Counters: exceeded sample count in FrameTime”错误重复尝试了同一应用程序,并且似乎这些错误不会出现,这意味着可以忽略这些错误。
这是因为我忘记添加我的实际谷歌地图 API 密钥。
我之前也遇到过类似的问题,我设置了一个位置监听器:
location.onLocationChanged.listen(l) {
controller.animateCamera(...);
}
尽管手机位置没有改变,但似乎调用了这个函数,因此我添加了一个检查来存储先前已知的位置,并在监听中将streamData与我的位置进行比较,仅在有更改时执行更新。
也许您可以发布您的代码以查看是否是这个原因?
今天早上我也遇到了同样的问题,后来解决了:
注意:这是针对安卓系统的。
这是在 onLocationChanged 方法内发生的。
当我将 isMyLocationEnabled 设置为 false 时,它在某种程度上被移除了,但并不完全,现在日志语句更少了。
FrameTime
消息消失。setState()
方法,还有一个locationListener()
。所以我删除了setState()
,改用provider
更新屏幕。这样警告就消失了。这种情况通常发生在地图移动时(或更具体地说,当它被重新绘制时)。无论是在动画播放时还是手动滑动地图时都会出现。我的日志记录器充斥着“Counters: exceeded sample count in FrameTime”消息。这就解释了为什么当我没有启用位置时,你会看到较少的消息:因为地图不会移动那么多...
这真的很烦人。