Я отлаживаю с помощью Android Studio (A.S) 1.0.2 с компиляциейSdkVersion 21, установленной в build.gradle. При использовании эмулятора с API 21 все работает нормально. Проблема возникает при отладке устройства, имеющего API 19. Каждая строка в стеке вызовов (помечена как "Фреймы" в A.S) правильно показывает имя функции, исходный файл и номер строки, соответствующий API 19. Однако, когда я нажимаю на одну из строк, которая соответствует одному из источников структуры (например, Activity.java), A.S неправильно открывается и отображает версию файла API 21, а не версию API 19.
В моей папке sdk для Android у меня есть . /sources/android -19 и./sources/android-21
Любая идея, почему A.S отображает неправильную версию файла?
Вещи, которые я пробовал (по порядку):
- Сброс Android Studio (удаление ~/.AndroidStudio *)
- Обновление Android Studio до последней версии
- Работа на эмуляторе с API 21 - A.S показывает правильную версию (21) файлов.
- Изменение команды compileSdkVersion на 19 и запуск на устройстве API 19 - A.S показывает правильные номера строк в стеке вызовов и открывает правильную версию (API 19) файлов в правильной строке.
- Изменение команды compileSdkVersion на 19 и запуск эмулятора API 21 - AS показывает, что в стеке вызовов номера строк, соответствующие API 21 (что мне кажется правильным поведением), однако, при нажатии на него AS ошибочно открывается версии API 19, а не версии API 21.
Подводя итог, при нажатии на строку в стеке вызовов A.S открывается версия файла, представленная compileSdkVersion, а не та, которая используется устройством/эмулятором во время сеанса отладки.