Android Studio: как прикрепить источники Android SDK?


112

Как я могу прикрепить источники Android SDK к Android Studio?

Когда я открываю один из классов Android, окно «Источники не найдены» с опцией «Присоединить источники» не появляется.

Как еще это сделать?

Ответы:


67

Откройте диспетчер sdk из меню панели инструментов и загрузите «Sources for Android SDK» для уровня API, определенного в вашем файле build.gradle, например

compileSdkVersion 19 // compile with API level 19

Больше ничего делать не нужно.

Примечание. Исходники для SDK доступны только для уровней API 14 и выше.

ОБНОВЛЕНИЕ (на основе стабильного выпуска 3.2.1):

Google меняет подход к отправке источников, поэтому давайте посмотрим, что изменилось.

Перейти в следующее место

Preferences -> Apperance & Behaviour -> System Settings -> Android SDK

Лень ориентироваться SDKв поиске по типу и студия поможет вам попасть в нужное место.

введите описание изображения здесь

Вы можете прочитать описание, в основном написано, что делать. Итак, после нажатия на «Показать сведения о пакете» вы увидите, установлены ли источники или нет (как показано на рисунке ниже), если он не установлен, установите, и все в порядке.

введите описание изображения здесь


1
@takumar, это потому, что исходный код SDK в настоящее время недоступен для Android API 20. Я уверен, что когда Android «L» выйдет из предварительной версии, исходный код будет доступен в диспетчере SDK.
Дик Лукас

37
После загрузки исходников мне нужно было перезапустить Android Studio, чтобы заставить его работать
Сатеш

3
Если вы отлаживаете более старую версию, чем compileSdkVersion, исходный код не будет соответствовать.
Дэвид

Я бы добавил к решению комментарий Сатеша. Похоже, многим пришлось перезапускать, мне тоже.
Ферран Мэйлинч

Вам нужно установить флажок «Показать сведения о пакете», чтобы найти запись «
Исходные коды

247

Отчеты Android Studio 3.2.1 в: проблема решена путем сброса SDK.

Настройки -> Внешний вид и поведение -> Системные настройки -> Android SDK.

Нажмите « Изменить» справа от местоположения Android SDK. Далее, Далее, Готово, чтобы завершить работу мастера и вуаля!


3
@ Файл 0xF / Настройки для Windows (Linux?), Настройки для Mac. Добавлен внешний вид и поведение, большое спасибо. Упустил это полностью.
Александр Маяцкий

1
@AlexanderMayatsky Файл / Настройки находится в Linux.
0xF

2
в Linux это:File -> Settings -> Appearance&Behavior -> System Settings -> Android SDK
lenooh 09

2
Возникла та же проблема, когда не отображалась документация. Это решило проблему для последней стабильной версии 3.1.4.
ChallengeAccepted

У меня это не работает. Я загрузил исходники для compileSdkVersion 28, и мой build.gradle также имеет targetSdkVersion 28, и когда я запускаю свое приложение в отладчике, я вижу всевозможные вещи, такие как art::ArtMethod::Invokeи StartBackgroundThread(это для вспомогательного потока JNI в моем приложении), но щелчок по чему-либо в части стека Android не показывает мне связанный исходный файл. Что мне не хватает?
kbro

32

Я не могу найти вышеупомянутые параметры графического интерфейса в версии 8.11 на osx, однако grep-fu сообщает мне:

config хранится в ~ / Library / Preferences / AndroidStudioBeta / options / jdk.table.xml

После редактирования этого файла (при остановленной Studio) и перезапуска сопоставления источников у меня все работает.

diff --git a/options/jdk.table.xml b/options/jdk.table.xml
index 0112b91..33828b8 100644
--- a/options/jdk.table.xml
+++ b/options/jdk.table.xml
@@ -76,7 +76,7 @@
         </javadocPath>
         <sourcePath>
           <root type="composite">
-            <root type="simple" url="file:///Applications/Android Studio.app/sdk/sources/android-19" />
+            <root type="simple" url="file:///Users/tehdawgz/dev/android-sdk/sources/android-19" />
           </root>
         </sourcePath>
       </roots>

AndroidStudio 2.1.2 здесь на Mac OS. У меня сработало: <root type="simple" url="file://$USER_HOME$/Library/Android/sdk/sources/android-23" />
Г. Штайгерт 05

1
Работал у меня. Ubuntu 14.04 / Android Studio 2.2. Я использовал «найти jdk.table.xml», который в моем случае находился в ~ / .AndroidStudio2.2 / config / options / jdk.table.xml. Интересно, что в какой-то момент в этом процессе что-то заменило мои абсолютные пути на "file: // $ USER_HOME $ ..." ?? В любом случае, после того, как я исправил файл, все заработало.
Стивен Смит

16

Для меня на 2016/08/29 работает Android Studio 2.1.3:

Я загрузил и компилировал api 24 до того, как были выпущены исходники. Я хочу указать на источник сейчас, когда они были выпущены. Перезапуск Android Studio после загрузки источников в диспетчере SDK не работал.

Мне пришлось действовать так, как будто я собирался отредактировать местоположение SDK в диспетчере SDK, когда я это сделал, я мог просто щелкнуть «Далее» в диалоговом окне и автоматически повторно проиндексировать материал SDK.

кнопка для редактирования местоположения SDK где просто щелкнуть дальше


7

Решение gdawg работало для меня также в Windows 10 и Android Studio 2.0. С небольшой модификацией файл jdk.table.xml расположен по адресу

C: \ Users \ {USER_NAME} \. AndroidStudio2.0 \ config \ options \ jdk.table.xml


5

Не уверен, почему принятый ответ, похоже, работает только с уровнем API 19. Мне удалось прикрепить источники SDK для уровня API 15, явно указав исходный путь для SDK. Вот что я сделал:

  1. Убедитесь, что я загрузил нужные источники SDK и настроил свой build.gradle с желаемым уровнем API.
  2. В окне «Проект» слева выберите раскрывающийся список «Внешние библиотеки».
  3. Щелкните правой кнопкой мыши элемент меню и выберите «Открыть настройки библиотеки».
  4. Перейдите на вкладку Sourcepath и используйте значок + в левом нижнем углу, чтобы связать с нужными источниками SDK (должен находиться в чем-то / sdk / sources)

6
> Щелкните правой кнопкой мыши элемент меню и выберите «Открыть настройки библиотеки». - где ты это нашел?
kiruwka

1
Похоже, что этот пункт меню больше не доступен. Есть способы сделать это в обычном InteliJ.
Дэвид

3

В android studio 0.8.6 (бета) (OSX 10.9.4) кажется, что вы можете просматривать исходный код Android напрямую, не прикрепляя источники вручную.

Обязательным условием является то, что вы должны загрузить «Источники для Android SDK» в «SDK Manager» и перезапустить «Android Studio».


1

Просто выполните следующие действия: Настройки -> Android SDK -> Запустить автономный диспетчер SDK -> загрузите необходимые источники SDK (в каждой версии Anroid Sources for Android SDK) -> перезапустите Android Studio. Если приведенное выше не помогло, убедитесь, что вы загрузили необходимые источники SDK, и сбросьте настройки, Android SDK Locationчтобы обновить. Я надеюсь, что это помогает.


0

Я не знал, о чем идет речь в третьем шаге меню в ответе Сфридмана. Еще один способ добраться до источника, который меня интересовал, - это после того, как Android Studio подняла класс .class, в который я хотел погрузиться:

Панировочные сухари в файл .class

Затем я мог бы щелкнуть правой кнопкой мыши по этой хлебной крошке и выбрать «Перейти к источнику»:

введите описание изображения здесь

Казалось, что он нашел это автоматически, вероятно, потому что я установил исходный код через диспетчер Android SDK, как описано в другом месте.


0

Сначала убедитесь, что у вас уже есть исходный код.

затем сбросьте местоположение Android SDK в settings.

Я решил свою проблему указанным выше способом.


0

Единственное, что у меня сработало, это:

  • Откройте Android SDK Manager (Tools -> Android -> SDK Manager -> Launch Standalone SDK Manager)
  • удалить всю платформу SDK и исходники для Android SDK (со всех уровней API)
  • перезапустить Android Studio

После перезапуска Android Studio отобразит мастер, потому что SDK не установлен: установите платформу SDK и источники для текущего уровня API.


0

В Android Studio 2.3.3 в Windows 7 у меня была проблема, заключающаяся в том, что уже загруженные исходные файлы для API-уровня 26 в папке SDK\sources\android-26не распознавались. Использование «File | Invalidate Caches / Restart» решило проблему для меня.


0

Для меня загрузка и обновление не помогли. Я попытался выбрать источник, но проблема не исчезла. Итак, я сделал Invalidate Cache / Restart. Теперь он работает.

Я попытался отредактировать файл jdk.table.xml, но там не было записи для android-26, это было только до android-25, поэтому я решил не редактировать этот файл.


0

По состоянию на 08.09.2019 доступны такие источники

sources;android-15
    Description:        Sources for Android 15
    Version:            2

sources;android-16
    Description:        Sources for Android 16
    Version:            2

sources;android-17
    Description:        Sources for Android 17
    Version:            1

sources;android-18
    Description:        Sources for Android 18
    Version:            1

sources;android-19
    Description:        Sources for Android 19
    Version:            2

sources;android-20
    Description:        Sources for Android 20
    Version:            1

sources;android-21
    Description:        Sources for Android 21
    Version:            1

sources;android-22
    Description:        Sources for Android 22
    Version:            1

sources;android-23
    Description:        Sources for Android 23
    Version:            1

sources;android-24
    Description:        Sources for Android 24
    Version:            1

sources;android-25
    Description:        Sources for Android 25
    Version:            1

sources;android-26
    Description:        Sources for Android 26
    Version:            1

sources;android-27
    Description:        Sources for Android 27
    Version:            1

sources;android-28
    Description:        Sources for Android 28
    Version:            1

Вы можете перечислить их ./pathtoandroidsdk/tools/bin/sdkmanager --list --verbose --no_https

Например, установить ./pathtoandroidsdk/tools/bin/sdkmanager "sources;android-28"

Для загрузки в Android Studio нет необходимости

Инструкция по установке в Android Studio

В приложении build.gradleустановите правильную версию sdk, которая будет включать желаемые источники

android {
    compileSdkVersion 28
    ...

Чтобы применить изменения - перезапустите IDE


0

Я только что столкнулся с аналогичной проблемой, когда мне нужно загрузить платформу android 28 через командную строку, я увидел ответ для запуска команды ./pathtoandroidsdk/tools/bin/sdkmanager "sources;android-28" .

Но на самом деле он показывает пример с сайта developer.android.comsdkmanager "platform-tools" "platforms;android-28" , так что я думаю, так и должно быть ./pathToAndroidSdk/tools/bin/sdkmanager "platforms;android-28".


0

Совместное использование, поскольку мне потребовалось время, чтобы осознать: на данный момент (август 2020 г.) API уровня 30 не имеет доступных источников (такой опции нет в диспетчере SDK). Я изменил свое приложение на целевой уровень API 29 (вместо 30) и убедился, что загрузил исходники для версии 29, и это сработало.

Убедитесь, что параметр «Показать сведения о пакете» включен, чтобы узнать, доступны ли источники для версии SDK, на которую вы нацеливаетесь.

Кроме того, теперь можно использовать «Инструменты -> Менеджер SDK» вместо «Файл -> Настройки -> и т. Д.».

SDK Manager

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.