提问人:Muhammad Muzammil 提问时间:10/23/2019 最后编辑:Muhammad Muzammil 更新时间:4/21/2023 访问量:441
调试器断点命中文件中的同一行,但在使用 lambda 时具有不同的构建变体
Debugger breakpoint hitting on the same line in file but of the different build variant while using lambdas
问:
我们的项目中有许多不同的构建、风格和尺寸。但是在更新到 Android Studio 3.5 后,我们注意到一个奇怪的行为,即当我们在多个构建变体中存在的文件的某些 lambda 中创建断点时,调试器无法正常工作,并且被击中在不同构建变体的文件(同名和包)中。有趣的是,只有当断点设置为在 lambda 的主体中触发并且工作正常时,才会发生整个问题
因此,总而言之,要重现此问题,您必须:
- 在每个变种中创建两个变种和一个同名的文件
- 创建一个代码,在两种风格中的某些行中包含 lambda
X
现在只有两件事中的一件会发生,但不会同时发生:
- 当您在风格 A 中并在 line 上创建一个触发器时,它将在同一行中断,但在风格 B 的文件中
X
- 当您在风格 B 中并在 line 上创建一个触发器时,它将在同一行中断,但在 flavor A 的文件中
X
以下是我们尝试重现该问题时的一些屏幕截图:
ActualFlavor 的 AuthRepository(活动构建变体):
所以问题是我们做错了什么?或者现在这真的是 Android Studio 中的一个问题?
Android Studio 版本 = 3.5,kotlin 版本 = 1.3.50,build:gradle 版本 = 3.5.1
答:
0赞
Alexey Vetrov
4/21/2023
#1
我在 IntelliJ IDEA 和 Kotlin 1.8.0 中看到了相同的行为。
我发现了一些肮脏的解决方法:我在 lambda 主体中添加了一些镇流器代码行,例如 .在那之后,断点起作用了。println("smth")
我认为这是一个 Kotlin 调试器错误,而不是 AndroidStudio。
评论
run