Android Studio:如何附加 Android SDK 源?

Posted

技术标签:

【中文标题】Android Studio:如何附加 Android SDK 源?【英文标题】:Android Studio: how to attach Android SDK sources? 【发布时间】:2014-02-08 21:29:31 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

首选项 -> 外观和行为 -> 系统设置 -> Android SDK。

点击 Android SDK 位置右侧的编辑下一步,下一步,完成完成向导,瞧!

【讨论】:

@0xF Windows(Linux?)的文件/设置,Mac 的首选项。添加了外观和行为,非常感谢。完全错过了。 @AlexanderMayatsky 文件/设置在 Linux 上。 在 Linux 上是:File -> Settings -> Appearance&Behavior -> System Settings -> Android SDK 遇到了文档未显示的相同问题。这解决了最新的稳定版本 3.1.4。 这对我不起作用。我已经下载了 compileSdkVersion 28 的源代码,并且我的 build.gradle 也有 targetSdkVersion 28,当我在调试器中运行我的应用程序时,我可以看到各种各样的东西,例如 art::ArtMethod::InvokeStartBackgroundThread(这是用于 JNI 助手我的应用程序中的线程),但单击堆栈的 Android 部分中的任何内容都不会显示关联的源文件。我错过了什么?【参考方案2】:

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

compileSdkVersion 19 // compile with API level 19

没有其他事情需要做。

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

更新(基于稳定版 3.2.1):

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

前往以下位置

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

懒得在搜索中输入SDK,工作室会帮助您找到正确的位置。

您可以阅读说明,主要说明要做什么。 所以点击“显示包详细信息”后,你会看到是否安装了源(如下图所示),如果没有安装,请安装,你很好。

【讨论】:

@takumar,这是因为 SDK 的源目前不适用于 Android API 20。我确信当 Android “L” 预览版出来时,源将在 SDK 管理器中可用. 下载源代码后,我需要重新启动 Android Studio 以使其工作 如果您在比 compileSdkVersion 更旧的版本上进行调试,源代码将不匹配。 我会将 Sathesh 的评论添加到解决方案中。看起来很多人不得不重新开始,我也是。 您需要勾选“显示包详细信息”复选框才能找到“Android 源...”条目【参考方案3】:

我无法在 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>

【讨论】:

AndroidStudio 2.1.2 在 Mac OS 上。以下对我有用:&lt;root type="simple" url="file://$USER_HOME$/Library/Android/sdk/sources/android-23" /&gt; 为我工作。 Ubuntu 14.04/Android Studio 2.2。我使用了'locate jdk.table.xml',在我的例子中是~/.AndroidStudio2.2/config/options/jdk.table.xml。有趣的是,似乎在这个过程中的某个时刻,某些东西用“file://$USER_HOME$...”替换了我的绝对路径??无论如何,在我修复文件后,事情就开始起作用了。【参考方案4】:

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

在发布源代码之前,我已经下载并正在针对 api 24 进行编译。既然它们已经被释放,我想指出源头。在 SDK 管理器中下载源代码后重新启动 Android Studio 无效。

我必须像要在 SDK 管理器中编辑 SDK 位置一样行事,当我这样做时,我只需通过对话框单击“下一步”并自动重新索引 sdk 内容。

【讨论】:

【参考方案5】:

gdawg 的解决方案在 Windows 10 和 Android Studio 2.0 中也适用于我。对 jdk.table.xml 文件所在位置稍作修改

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

【讨论】:

【参考方案6】:

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

    确保我已下载所需的 SDK 源并使用所需的 API 级别设置我的 build.gradle。 在左侧的“项目”窗口中,选择“外部库”下拉菜单。 右键单击菜单项并选择打开库设置。 点击 Sourcepath 选项卡并使用左下角的 + 图标链接到所需的 SDK 源(应该在 something/sdk/sources 中)

【讨论】:

>右键单击菜单项并选择打开库设置。 - 你在哪里找到的? 此菜单项似乎不再可用。在普通的 InteliJ 中有一些方法可以做到这一点。【参考方案7】:

在android studio 0.8.6(Beta) (OSX 10.9.4) 中,好像不用手动附加Sources 就可以直接查看android 源代码了。

前提是你应该在“SDK Manager”中下载“Sources for Android SDK”并重启“Android Studio”

【讨论】:

【参考方案8】:

只需按照以下步骤操作:设置 --> Android SDK --> 启动独立 SDK 管理器 --> 下载您需要的 SDK 源(在每个 Anroid 版本的Sources for Android SDK 中) --> 重新启动您的 Android Studio。如果以上没有帮助,请确保您已下载所需的 SDK 源,并重置 Android SDK Location 以刷新。希望对你有帮助。

【讨论】:

【参考方案9】:

我不知道 sfridman 的回答中的菜单步骤 3 指的是什么。我设法找到我感兴趣的源代码的另一种方法是在 Android Studio 提出我想深入研究的 .class 之后:

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

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

【讨论】:

【参考方案10】:

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

然后在settings重置Android SDK位置。

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

【讨论】:

【参考方案11】:

唯一对我有用的是:

打开 Android SDK 管理器(工具 -> Android -> SDK 管理器 -> 启动独立 SDK 管理器) 卸载所有 SDK 平台Android SDK 源(从所有 API 级别) 重启 Android Studio

由于没有安装 SDK,Android Studio 会在重新启动时弹出一个向导:安装当前使用的 API 级别的 SDK 平台和源代码。

【讨论】:

【参考方案12】:

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

【讨论】:

【参考方案13】:

对我来说,下载和刷新没有帮助。我试图选择来源,但仍然是同样的问题。所以我做了无效缓存/重启。现在它的工作。

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

【讨论】:

【参考方案14】:

至于 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

【讨论】:

【参考方案15】:

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

【讨论】:

【参考方案16】:

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

确保“显示包详细信息”已打开,以查看源是否可用于您所定位的 SDK 版本。

此外,现在可以使用“工具 -> SDK 管理器”而不是“文件 -> 设置 -> 等...”。

【讨论】:

以上是关于Android Studio:如何附加 Android SDK 源?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Android Studio开发/调试Android源码

如何将两个或多个文件附加到 Android 上的 SEND 操作

Android Studio下HierarchyViewer的使用

如何安全地更改 Android Studio 中的项目名称?

listview android studio中的类别

Android studio 动态片段根据日期