2025年3月31日 星期一 乙巳(蛇)年 正月初一 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > 安卓(android)开发

Android Studio输出日志的Bug

时间:02-07来源:作者:点击数:47
  • var count = 0
  • repeat(4) {
  • Log.i("ABCD", "见鬼了")
  • count++
  • }
  • Log.i("ABCD", "count = $count")

输出日志如下:

  • 见鬼了
  • 见鬼了
  • count = 4

循环已经走了4次了,但是只打印了两次“见鬼了”,我猜,是不是内容一样的时候只打印两次啊?那我运行这样的代码:

  • Log.i("ABCD", "见鬼了")
  • Log.i("ABCD", "见鬼了")
  • Log.i("ABCD", "见鬼了")
  • Log.i("ABCD", "见鬼了")

输出如下:

  • 见鬼了
  • 见鬼了

还真的是这样的,在AndroidStudio真恶心,搞这种Bug,最开始发现这个问题的时候是我在打印一些数组值的时候,当时真的以为见鬼了,以为是Kotlin语言出问题了,但是怎么想也不对啊,Kotlin这么强大,怎么出这么低级的错误呢。

这个Bug在需要打印数组时问题还是挺大的,如果数组元素值一样,会导致输出结果变少,如下:

  • val bytes = byteArrayOf(3, 3, 3, 3, 4)
  • bytes.forEach { byte -> Log.i("ABCD", "byte = $byte")}

输出结果如下:

  • byte = 3
  • byte = 3
  • byte = 4

这在调试的时候,如果不知道原因,真的搞死人啊,怎么也找不到什么时候数组中少了两个元素的原因,其实元素没少,只是打印少了,解决这个问题只能是让每次输出的内容不一样,所以可以使用数组的索引,如下:

  • val bytes = byteArrayOf(3, 3, 3, 3, 4)
  • bytes.forEachIndexed { index, byte -> Log.i("ABCD", "byte[$index] = $byte") }

输出如下:

  • byte[0] = 3
  • byte[1] = 3
  • byte[2] = 3
  • byte[3] = 3
  • byte[4] = 4
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门