在 Kotlin(尤其是 Android / 后端 / 多平台)开发中,调试效率很大程度取决于工具链 + 习惯 + 代码可观测性。下面按「最常用 → 进阶」给你一套实用方案。
user.id == 123
Run → View Breakpoints → ExceptionNullPointerException 等✅ 适合:逻辑错误、状态异常
also / let / run 做“无侵入调试”val user = getUser()
.also { println("user = $it") }
比临时加 log 更优雅,调试完可一键删。
TODO() 快速定位fun parse(data: String) {
TODO("还没实现")
}
运行时会直接抛异常并定位。
不要到处 println
Timber.d("user = $user")
logger.info { "user = $user" } // lazy evaluate
✅ 好处:
System.setProperty("kotlinx.coroutines.debug", "on")
日志示例:
[main @coroutine#1] loading...
launch(CoroutineName("login")) {
...
}
data classdata class User(
val id: Int,
val name: String
)
自动有 toString,调试时一眼看清。
sealed class UiState
data class Success(val data: String) : UiState()
object Loading : UiState()
fun handle(state: UiState) {
when(state) {
is Success -> TODO()
Loading -> TODO()
}
}
少写 if-else,出 bug 概率更低。
@Test
fun testAdd() {
assertEquals(3, add(1, 2))
}
✅ 优点:
| 问题 | 建议 |
|---|---|
| 协程不知道挂哪了 | 开 debug + CoroutineName |
| 空指针难查 | 用 ?. + requireNotNull |
| 状态混乱 | 用不可变 data class |
| 日志太多 | 分级 + 过滤 |
| 调试慢 | 多写单测 |
Kotlin 调试的核心:
让代码“看得见状态、跑得稳逻辑、出错有提示”。
如果你愿意,可以告诉我:
我可以直接给你针对性的调试模板。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。