Точка останова отладчика попадает на одну и ту же строку в файле, но другого варианта сборки при использовании лямбды - PullRequest
9 голосов
/ 23 октября 2019

У нас есть много разных сборок, вкусов и размеров в нашем проекте. Но после обновления до Android Studio 3.5 мы заметили странное поведение: когда мы создаем точку останова в некотором lambda нашего файла, который существует более чем в одном варианте сборки, тогда отладчик не работает должным образом и в него попадаютфайл (с тем же именем и пакетом) другого варианта сборки. Интересно, что вся эта проблема возникает только тогда, когда точка останова настроена на срабатывание в теле лямбды и работает отлично, в противном случае

Итак, чтобы воспроизвести эту проблему, вам необходимо:

  1. Создайте два варианта и файл с одинаковым именем в каждом из этих вариантов
  2. Создайте код, содержащий лямбду в одной строке X в обоих вариантах

Теперь произойдет только одна из двух вещей, но не обе:

  • Когда вы находитесь в аромате А и создаете триггер на линии X, он будет прерываться на той же самой линии, нов файле ароматизатора B
  • Когда вы находитесь в ароматизаторе B и создаете триггер в строке X, он будет прерываться на той же строке, но в файле ароматизатора A

Вот некоторые скриншоты того, когда мы пытались воспроизвести проблему:

AuthRepository ActualFlavor (Активный вариант сборки): enter image description here

AuthRepository DummyFlavor: enter image description here

Итак, вопрос в том, что мы делаем не так? Или это действительно проблема в Android Studio прямо сейчас?

Версия Android Studio = 3.5 версия kotlin = 1.3.50 сборка: версия gradle = 3.5.1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...