debugging 使用lambda时,调试器断点命中文件中的同一行,但属于不同的构建变体

i86rm4rw  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(127)

我们有很多不同的体型但是在更新到Android Studio 3.5之后,我们注意到一个奇怪的行为,即当我们在文件的某些lambda中创建断点时,如果该文件存在于多个构建变体中,则调试器无法正常工作,并且会在文件中被命中有趣的是,只有当断点被设置为在lambda的主体中触发时,整个问题才会发生,否则就会正常工作
因此,总而言之,要重现此问题,必须:
1.创建两种风格,并在每种风格中创建一个同名文件
1.创建一个代码,在这两种风格中的某行X处包含lambda
现在两件事中只有一件会发生,而不是两件都发生:

  • 当您在风格A中,并且在X行上创建触发器时,它将在风格B的文件中的同一行上中断
  • 当您在风格B中,并且在X行上创建触发器时,它将在风格A文件的同一行上中断

以下是我们试图重现该问题时的一些屏幕截图:
ActualFlavor的AuthRepository(Active Build Variant):

DummyFlavor的AuthRepository:

所以问题是我们做错了什么?或者这真的是Android Studio现在的问题?

  • Android Studio version = 3.5Kotlinversion = 1.3.50 build:gradle version = 3.5.1*
luaexgnf

luaexgnf1#

我在IntelliJ IDEA和Kotlin1.8.0中看到了同样的行为。我发现了一些肮脏的解决方法:我在lambda代码体中添加了一些压载代码行,如println("smth")。之后断点工作了。
我认为这是一个Kotlin调试器错误,而不是AndroidStudio。

相关问题