我试图在断点时判断变量的值,但Android Studio说我的变量"states已优化"[原文如此].

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

    // Breakpoint here
    viewModel.fooBarBaz()

我知道我可以设置一个更高的断点,或者在使用变量的断点下面添加一行代码--就像一条print语句,但这太烦人了.我如何告诉Android Studio不要优化我的局部变量?

推荐答案

build.gradle.kts内使用kotlinOptionsfreeCompilerArgs = listOf("-Xdebug").

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

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

Android相关问答推荐

了解数据加载在Kotlin中的工作原理

在Kotlin Jetpack Compose中点击按钮后启动另一个Android应用程序

如何在Reaction Native中显示Google Map iFrame?

如何将子零部件的大小调整为可以调整大小的父组件大小?

Android Jetpack Compose Material3主题配色方案

关闭导致Kotlin中的内存泄漏?

在模块中找到重复的类com.google.Firebase.auth.ktx.AuthKt||Android Studio

如何修复Google Play市场中有关已删除广告库的错误消息?

Android-交叉引用表中的ForeignKey用于什么?

如何在 Android Studio 中为带有 Room 的 SQLite 编写需要参数的查询?

我可以从 Android 中的选定文本中获取周围的文本吗?

Jetpack Compose 中带有权重的行和 AnimatedVisibility 会 destruct UI

如何将可重用的 ExtendedFloatingActionButton 与可重用的脚手架链接起来

在 Jetpack Compose 中使用 ViewModel 实现 startActivity 的最佳实践

Jetpack Compose UI - 在 AlertDialog 中单击时按钮宽度会发生变化

为什么官方文档用大写字母表示val变量?

TextField 溢出和软包装不适用于 Compose 约束布局

使用 Room 在 SQLite 中保存复杂的 JSON 响应

Jetpack Compose 中的按钮上的文本未更新

Android全屏AlertDialog