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::Invoke
和 StartBackgroundThread
(这是用于 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 上。以下对我有用:<root type="simple" url="file://$USER_HOME$/Library/Android/sdk/sources/android-23" />
为我工作。 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的使用