Android Studio:如何附加Android SDK源代码?


111

如何将Android SDK来源附加到Android Studio?

当我打开一个Android类时,不会出现带有“附加源”选项的“未找到源”窗口。

还有什么其他方法可以做到这一点?

Answers:


66

从工具栏菜单打开sdk管理器,然后下载build.gradle文件中定义的API级别的“ Android SDK的来源”

compileSdkVersion 19 // compile with API level 19

不需要做其他任何事情。

注意: SDK的来源仅适用于14级及以上的API。

更新(基于稳定版本3.2.1):

Google更改了发送来源的方式,因此让我们看看发生了什么变化。

转到以下位置

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

懒惰地导航SDK搜索和Studio会帮助您找到合适的位置。

在此处输入图片说明

您可以阅读说明,大部分内容是做什么的。因此,单击“显示软件包详细信息”后,您将看到是否已安装源(如下图所示)(如果未安装,请重新安装),您会感觉很好。

在此处输入图片说明


1
@takumar,这是因为SDK的源代码当前不可用于Android API20。我确定当Android“ L”退出预览时,该源代码将在SDK管理器中可用。
迪克·卢卡斯

37
下载源代码后,我需要重新启动Android Studio才能使其正常工作
Sathesh 2014年

3
如果要在比compileSdkVersion更高的版本上调试,则源代码将不匹配。
大卫

我将Sathesh的评论添加到解决方案中。看起来很多人也不得不重新启动,我也是。
Ferran Maylinch '18

您需要勾选“显示软件包详细信息”复选框,以找到条目“ Android的来源...”
Flimm,2016年

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

2
遇到未显示文档的同一问题。这解决了最新的稳定版本3.1.4。
挑战

这对我不起作用。我已经下载了源compileSdkVersion 28和我的build.gradle也有targetSdkVersion 28,当我在调试器中运行我的应用程序,我可以看到像各种各样的事情art::ArtMethod::InvokeStartBackgroundThread(这是我的应用程序JNI的辅助线程),但单击堆栈中Android部分的任何内容都不会显示相关的源文件。我想念什么?
kbro

32

我无法在osx的v8.11中找到上述gui选项,但是grep-fu告诉我:

配置存储在〜/ 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>

Mac OS上的AndroidStudio 2.1.2。以下内容为我工作: <root type="simple" url="file://$USER_HOME$/Library/Android/sdk/sources/android-23" />
G. Steigert,

1
为我工作。Ubuntu 14.04 / Android Studio 2.2。我使用的是'locate jdk.table.xml',在我的情况下是〜/ .AndroidStudio2.2 / config / options / jdk.table.xml。有趣的是,在此过程中的某个时刻似乎有些东西用“ file:// $ USER_HOME $ ...”代替了我的绝对路径?无论如何,我修复文件后事情就开始起作用。
史蒂文·史密斯

16

对于我在2016/08/29运行android studio 2.1.3:

在发布源代码之前,我已经下载并针对api 24进行了编译。现在,我想指出它们的来源。在SDK管理器中下载源代码后重新启动Android Studio无法正常工作。

我必须采取行动,就像要在SDK Manager中编辑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源,并使用所需的API级别设置了build.gradle。
  2. 在左侧的“项目”窗口中,选择“外部库”下拉列表。
  3. 右键单击菜单项,然后选择“打开库设置”。
  4. 单击“源路径”选项卡,然后使用左下方的+图标链接到所需的SDK源(应位于something / sdk / sources中)

6
>右键单击菜单项,然后选择打开库设置。-在哪里找到的?
kiruwka 2015年

1
似乎该菜单项不再可用。在普通的InteliJ中,有一些方法可以做到这一点。
大卫,

3

在android studio 0.8.6(Beta)(OSX 10.9.4)中,您似乎可以直接查看android源代码,而无需手动附加源代码。

前提条件是您应该在“ SDK管理器”中下载“ Android SDK的源”并重新启动“ Android Studio”


1

只需执行以下步骤:设置-> Android SDK->启动独立SDK管理器->下载所需的SDK源(在每个Anroid版本中Sources for Android SDK)->重新启动Android Studio。如果上述方法无济于事,请确保您已经下载了必需的SDK源,然后将其重置Android SDK Location为刷新。希望对您有所帮助。


0

我不知道sfridman答案的菜单第3步指的是什么。我设法获得感兴趣的源代码的另一种方法是,在Android Studio调出我想深入研究的.class之后:

面包屑到.class文件

然后,我可以右键单击该面包屑,然后选择“跳转到源代码”:

在此处输入图片说明

这样做似乎可以自动找到它,可能是因为我已通过Android SDK管理器安装了源代码,如其他地方所述。


0

首先,检查您是否已经加载了源。

然后在重置Android SDK位置settings

我通过以上方法解决了我的问题。


0

唯一对我有用的是:

  • 打开Android SDK Manager(工具-> Android-> SDK Manager->启动独立SDK Manager)
  • 卸载所有SDK平台Android SDK的来源(从所有API级别开始)
  • 重新启动Android Studio

重新启动后,由于未安装SDK,Android Studio将弹出一个向导:安装SDK平台和当前使用的API级别的源。


0

在Windows 7的Android Studio 2.3.3中,我遇到的问题SDK\sources\android-26是无法识别文件夹中API级别26的已下载源文件。使用“文件|使高速缓存无效/重新启动”为我解决了该问题。


0

对我而言,下载和刷新无济于事。我试图选择来源,但仍然是同样的问题。所以我做了无效缓存/重启。现在可以正常工作了。

我尝试编辑jdk.table.xml文件,但没有android-26的条目,直到android-25才行,所以我决定不编辑该文件。


0

至于09/08/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.com的示例显示为sdkmanager "platform-tools" "platforms;android-28",因此我想应该是./pathToAndroidSdk/tools/bin/sdkmanager "platforms;android-28"

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.