Подтвердить что ты не робот

Android Studio вступает в неправильный источник sdk

У меня есть следующие настройки build.gradle.

compileSdkVersion 21
buildToolsVersion '21.1.1'

defaultConfig {
    minSdkVersion 18
    targetSdkVersion 21
}

Проблема заключается в том, что, когда я вхожу в источник Android SDK на устройстве KitKat (19 на Genymotion или Device), он по-прежнему настаивает на вступлении в источник Android-21 вместо 19.

Изменение любого из приведенных выше параметров просто разбивает компиляцию моего приложения, так как у меня есть код v21. Все 19 вызовов защищены должным образом, а код работает на 19, только ссылка на исходный код неверна.

Приветствую вас, братья и сестры!

4b9b3361

Ответ 1

Изменить (7/1/2016):
Android Studio 2.2 исправляет это и переходит к источникам уровня API, который соответствует устройству, на котором вы на самом деле работаете (пока у вас установлены эти источники). Было объявлено здесь.


Для меня работало следующее обходное решение:

  • Скомпилируйте приложение без каких-либо изменений.
  • Запустите приложение в режиме отладки (и, возможно, перерыв в точке останова).
  • Перейдите к File > Project Structure, найдите свой модуль app (или/и, возможно, любые другие модули) и измените Compile Sdk Version на тот, который соответствует устройству, от которого вы отлаживаете (например, 19).
  • Вставьте код рамки - он должен войти в SDK 19 источников.

Ответ 2

Что произойдет, если вы попытаетесь отладить исходный код на эмуляторе, который запускает изображение Android Lollipop для Android версии 5.0.x? Означает ли он правильный источник? Я тоже борюсь с этим, и я пришел к выводу, что проблема связана с настройками источника android поставщиком оборудования.

Я пытаюсь выполнить исходный код Android на устройстве samsung, работающем на 4.4.2 KitKat. Некоторые файлы выстраиваются хорошо, некоторые отключены несколькими строками, а остальные - из-за удара. Instrumentation.java - это тот, к которому я обычно попадаю. Он выключен на 5 строк.

Итак, почему я думаю, что поставщик настроил источник android? Я прошел через запуск приложения в ActivityThread.java и Instrumentation.java. Отладчик по-прежнему будет правильно работать, даже если источник не выстраивается в линию. Я перекрестно ссылаюсь на рутину, в которой я находился с исходным кодом Android на grepcode.com. В конце концов я вижу шаг отладчика в вызове функции, который отсутствует в любой версии java файла, опубликованной на grepcode.

Вот пример: ActivityThread.HandleLaunchActivity. Я был свидетелем отладчика, делающего эти вызовы

unscheduleGcIdler          : present in android source
intent.getWindowStyle      : not present. Samsung customization?
handleConfigurationChanged : present

Если я прав, тогда отладчик должен правильно выполнить эмулированное изображение, так как он не будет содержать настроенный код поставщика.

Ответ 3

Как уже упоминалось в другом ответе, он был исправлен в Android Studio 2.2 (отчет об ошибке).

Однако он все еще не работал у меня даже в Android Studio 3.0 Он начал работать только после того, как я проверил "Показывать альтернативный коммутатор источника" в настройках.

скриншот