在 Android Studio 中设置 kotlin 断点时如何防止变量被优化

How to prevent variables from being optimized out when setting kotlin breakpoints in Android Studio

提问人:Kevin Worth 提问时间:10/9/2023 更新时间:10/9/2023 访问量:49

问:

我正在尝试在断点处检查变量的值,但 Android Studio 说我的变量“已被优化”[原文如此]。states

    val states = mutableListOf<UiState>()
    backgroundScope.launch(Dispatchers.Unconfined) {
        viewModel.uiState.toList(states)
    }
    assertEquals(true, states[0].isLoading)

    // Breakpoint here
    viewModel.fooBarBaz()

我知道我可以在更高的位置设置一个断点,或者在使用该变量的断点下方添加一行代码(如打印语句),但这很烦人。如何告诉 Android Studio 不要优化我的局部变量?

Kotlin Android-Studio 调试 断点

评论


答:

2赞 Kevin Worth 10/9/2023 #1

使用和里面。kotlinOptionsfreeCompilerArgs = listOf("-Xdebug")build.gradle.kts

android {
    ...
    buildTypes {
        getByName("debug") {
            isMinifyEnabled = false

            kotlinOptions {
                freeCompilerArgs = listOf("-Xdebug")
            }
        }
        getByName("release") {
            ...
        }
    }
...
}