【问题标题】:Android Studio breakpoints in Kotlin code do not work (No executable code found)Kotlin 代码中的 Android Studio 断点不起作用(未找到可执行代码)
【发布时间】:2021-02-23 08:37:36
【问题描述】:

我正在使用 macOS 上的 Android Studio 4.1.2 来更新现有的基于 Java 的 Android 应用程序。我现在第一次在项目中添加了 Kotlin 支持。虽然 Kotline 代码可以毫无问题地使用,但代码中的断点不起作用:

// Kotlin file Utils.kt
package com.example.myApp

fun doSomething(a: Int, b: Int): Int {
    Log.d("Debug", "I did something...")
    val sum = a + b
    return sum
}

// Some JAVA file
... 
int result = UtilsKt.doSomething(1, 2);

在 JAVA 代码的任何地方使用断点都可以正常工作。但是,当在val sum = a + b 行(或 Kotlin 代码中的任何其他位置)设置断点时,会显示一个禁用的灰色圆圈,而不是通常的红点,并且将鼠标悬停在它上面会显示提示

在 com.example.myApp.UtilKt 类的第 42 行找不到可执行代码

日志输出显示,代码确实运行了。另外,在调用 Kotlin 代码的 Java 代码处设置断点也可以,从那里进入 Kotlin 代码也没有问题。

清理项目、重启 Android Studio 等都没有帮助。 知道如何解决这个问题吗?

【问题讨论】:

    标签: android android-studio kotlin debugging breakpoints


    【解决方案1】:

    尝试单击 [应用代码更改] 如果它不起作用尝试 [使缓存无效/重新启动] 这是 android studio IDE 4.1 及以上版本的问题

    【讨论】:

    • 谢谢。使用“应用代码更改”没有任何区别。此外,这只对正在运行的调试会话应用更改才有意义,不是吗?但是,重新编译/重新启动应用程序时也会出现问题。使用“无效缓存/重启”也没有效果。
    • 您可以在文件菜单第 12 个选项中找到“无效缓存/重启”
    【解决方案2】:

    尝试在调用方法的地方也使用断点。

    【讨论】:

    • 从 Java 断点进入 Kotlin 代码没有问题。但这并不能解决问题,我无法在 Kotlin 本身中设置断点。
    • 如果你的代码像这样 var result = UtilsKt.doSomething(1, 2) 尝试从那里开始使用断点。我认为 kotlin 需要知道从哪里开始看点。如果它仍然没有解决,我其实不知道。也许重启android studio可以解决问题
    猜你喜欢
    • 2023-03-16
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 2017-08-19
    • 1970-01-01
    相关资源
    最近更新 更多