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

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

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

还有什么办法?

66760 次浏览

从工具栏菜单打开 SDK 管理器,下载 build.gradle 文件中定义的 API 级别的“ Android SDK 源代码”,如下所示

compileSdkVersion 19 // compile with API level 19

Nothing else needs to be done.

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

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

Google 改变了发送源代码的方式,所以让我们看看有什么改变。

去下面的地方

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

相当懒惰的导航类型 SDK在搜索和工作室将帮助您采取正确的地方。

enter image description here

你可以看看描述,大部分都说了该怎么做。 所以在点击“显示软件包详细信息”之后,您将看到是否安装了源代码(如下图所示) ,如果没有安装,请安装,您是好的。

enter image description here

不确定为什么接受的答案似乎只适用于 API 级别19。我能够通过显式地提供 SDK 的源路径来为 API 级别15附加 SDK 源。我是这么做的:

  1. 确保我已经下载了所需的 SDK 源代码,并使用所需的 API 级别设置 build.gradle。
  2. 在左侧的“项目”窗口中,选择“外部库”下拉列表。
  3. 右键单击菜单项并选择“打开库设置”。
  4. Click the Sourcepath tab and use the + icon at the bottom left to link to the desired SDK sources (should be in something/sdk/sources)

我不知道 Sfridman 回答的菜单第三步指的是什么。另一个我感兴趣的源代码是在 Android Studio 提出了。我想钻研的课程:

Breadcrumbs to .class file

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

enter image description here

这样做似乎会自动找到源代码,可能是因为我已经通过 Android SDK 管理器安装了源代码,就像其他地方所描述的那样。

In android studio 0.8.6(Beta) (OSX 10.9.4), it seems that you can view the android source code directly without attaching the Sources manually.

The prerequisite is you should download "Sources for Android SDK" in "SDK Manager" and restart "Android Studio"

我无法在 osx 的 v8.11中找到上面提到的 gui 选项,但是 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>

GDawg 的解决方案在 Windows 10和 Android Studio 2.0中同样适用。通过 jdk.table.xml 文件所在的小修改

C: 用户{ USER _ NAME } . AndroidStudio2.0配置选项 jdk.table.xml

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

然后将 Android SDK 位置重置为 settings

我用上述方法解决了我的问题。

Android Studio 3.2.1报道: 通过重置 SDK 解决了这个问题。

参数-> 外观和行为-> 系统设置-> Android SDK。

Click on Edit to the right of Android SDK location. 接下来,Next,Finish 来完成向导,瞧!

The only thing that worked for me was:

  • 打开 Android SDK Manager (Tools-> Android-> SDK Manager-> Launch Standalone SDK Manager)
  • 卸载所有的 SDK 平台Android SDK 的来源(从所有 API 级别)
  • 重启 Android Studio

重新启动后,Android Studio 将弹出一个向导,因为没有安装 SDK: 安装当前使用的 API 级别的 SDK 平台和源代码。

只需按照以下步骤: 设置—— > Android SDK —— > 启动独立 SDK 管理器—— > 下载所需的 SDK 源(在每个 Android 版本的 Sources for Android SDK中)—— > 重新启动 Android Studio。如果上面没有帮助,请确保您已经下载了所需的 SDK 源代码,并重置 Android SDK Location以进行刷新。希望能有所帮助。

For me on 2016/08/29 running android studio 2.1.3:

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

我必须表现得像是要在 SDK 管理器中编辑 SDK 位置一样,当我这样做时,我只需要通过对话框单击‘ next’,然后自动重新索引 SDK 内容。

button for edit SDK location where to just click next through

在 Windows7上的 Android Studio 2.3.3中,我遇到了这样的问题: 在文件夹 SDK\sources\android-26中已经下载的源文件 für API-Level 26无法识别。使用 "File | Invalidate Caches / Restart"为我解决了这个问题。

对我来说,下载和刷新是没有帮助的。我试图选择来源,但仍然是同样的问题。所以我确实废除了缓存/重启。现在起作用了。

我尝试编辑 jdk.table.xml 文件,但是没有 android-26的条目,只有 android-25,所以我决定不编辑那个文件。

As for 09/08/2019 there are available such sources

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

当我需要通过命令行下载 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"

共享,因为我花了一段时间才意识到: 目前(2020年8月) API 级别30没有可用的源(在 SDK 管理器中没有这样的选项)。我将我的应用程序更改为目标 API 级别29(而不是30) ,并确保下载了版本29的源代码,它工作了。

请确保“显示包详细信息”被打开,以查看是否有可用的源代码可用于您所针对的 SDK 版本。

Also, it's now possible to use "Tools -> SDK Manager" instead of "File -> Settings -> etc...".

SDK Manager