您当前的位置:首页 > 计算机 > 编程开发 > 安卓(android)开发

Android Studio输出日志的Bug

时间:02-07来源:作者:点击数:
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
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门