如何将源代码附加到android.jar


73

我是Android新手。我在Windows OS中使用Eclipse IDE。我的简单应用程序有一个微调器,用于填充数据库列中的列表。当我单击微调器类时,文件编辑器会显示找不到该源,并且android.jar没有源附件。

我下载了源代码并将其放在以下位置:

android-sdk-windows\platforms\android-8

然后,通过以下步骤附加此源:

右键单击项目=>构建路径=>配置构建路径=>库=>源附件=>给出下载的源代码的路径。

但是,我的调试没有任何解决方案。同样,在单击微调器时,它会打开android.jar没有源附件的调试。


更改您接受的答案!并选择Wisely
Mr_and_Mrs_D 2013年

Answers:


13

要附加android.jar的源代码,您可以按照以下链接中的教程进行操作:http : //android.opensourceror.org/2010/01/18/android-source/ 确保选择正确的平台版本。

如果您对微调器难以理解,请尝试获取示例代码并查看其工作方式:http : //developer.android.com/resources/samples/get.html

祝好运。:)

更新资料

这个答案已经过时了,请考虑其他答案。


如果您至少在此处发布链接摘要,那将是很好的。如果该链接由于任何原因断开,我们将失去整个答案。
丹(Dan Blows)

@Blowski如果链接断开,那么我们将无法获取jar文件,因此我的摘要将不再有用... :) @Santhosh plz将答案标记为已接受,因此其他人可以更轻松地找到它。
thanhbinh84 2011年

您真的会为一个公认的错误答案乞讨吗?
Michael Mrozek

@MichaelMrozek感谢您投下反对票,只是想给其他选择。如您所愿删除,希望能让您开心。
thanhbinh84 2013年

2
@doreamon我知道,我简直不敢相信自己是个混蛋,并否定了一个完全错误的答案。我希望我一堆正确的答案可以使您感觉更好
Michael Mrozek 2013年

90

现在,这真的很容易!

转到窗口-> Android SDK Manager,然后安装“ Android SDK的源”。

现在,尝试按住Control键单击一些Android标识,您将获得通常的“无附加源”页面。单击“附加源”,并获得选择外部文件夹的选项。

现在浏览 /home/me/android-sdks/sources/android-16(或安装SDK的任何位置;这是默认设置),然后单击“确定”。

它应该考虑片刻,然后显示源!是的


对我来说,这仅包括API的14-16。否则对我来说是最好的方法,谢谢!
Cdr。鲍威尔

2
直到API 14,他们才在SDK管理器中未添加任何“ Android SDK的源”。到目前为止,此后的每个版本都包含该选项。大多数开发人员应该能够增加他们所针对的API(而不是minSDK),并使用Eclipse中的最新API源。
Austyn Mahoney 2013年

2
如果这不起作用,请参阅fsbmain的答案,最终为我工作。
crobicha

2
这对我不起作用:“附加源”对话框希望找到一个.zip或.jar文件,并且不允许仅在目录上“命中”。这与ADT v21(Eclipse Juno)一起使用。
2014年

关于乔的评论:“附加源对话框希望找到一个.zip或.jar文件,并且不允许仅在目录上单击”确定”。实际上,您可以通过单击EXTERNAL来解决该问题PATH字段右侧的FOLDER按钮。默认情况下,外部位置路径设置为EXTERNAL FILE。(在“源附件配置”窗口中)。
Sandi Laufenberg-Deku

85

除非您需要较旧的API来源,否则Timmmm的答案可能会更好地为您服务。如果您确实需要14岁以上的资源,请继续阅读...

在Eclipse中,只需转到

帮助->安装新软件

然后添加更新站点

http://adt-addons.googlecode.com/svn/trunk/source/com.android.ide.eclipse.source.update/

并完成安装的动作。

这将很高兴为所有已安装的API版本提供源,并且对我来说效果很好。一些更多的文档在这里

http://code.google.com/p/adt-addons/

寻找标题Android Sources


1
托曼斯基答案中提到的方法对我来说是唯一的方法。我使用的是Windows XP,Eclipse 3.7,很抱歉,我不能添加评论。
Hoang Tran

我运行了安装程序,但没有源。还有更多事情要做吗?链接的文档对我没有帮助;我需要循序渐进。
卡尔·马纳斯特

1
很好。不幸的是,似乎没有办法只选择某些android版本,您必须下载所有版本的源代码。
罗兰

1
也为我工作。我也希望可以选择一个特定的android版本。
2012年

1
现在,SDK管理器可以选择下载Android源代码。不幸的是,安装后似乎没有任何效果。不用等待,我已经解决了,请参阅下面的答案。
Timmmm

14

如果android-sdks/sources/android-17无法将文件夹添加为外部源(如本例所示),则可以尝试为其创建文件夹android-sdks/platforms/android-17/sources/android-17副本源并重新启动eclipse(我拥有Eclipse Juno Service Release 1)。只有这种方式对我有效。

针对android-17的步骤:

  1. 转到adroid-sdk安装文件夹,对我来说d:\ws\android-sdks\
  2. android-17源文件夹复制android-sdks\sources\android-17\android-sdks\platforms\android-17\sources\(必须在sources此处手动创建文件夹)文件夹,因此源的最终路径必须为:android-sdks\platforms\android-17\sources\android-17\
  3. 重新启动eclipse,它必须自动附加android-17的源

UPD:与以下解决方案相同symlinks

Windows Vista +(感谢@ saleemrashid1mklink在评论中提到):

1. cd platforms\android-17
2. mklink /D "sources\android-17" "..\..\..\sources\android-17"

对于基于Unix的操作系统(@Joe注释):

它可以很好地创建目录并将符号链接“ sources / android-XX”链接到“ ../../../sources/android-XX”:

mkdir platforms/android-19/sources && 
ln -s ../../../sources/android-19 platforms/android-19/sources/android-19. 

也为我工作。我也遇到了与您类似的问题。非常感谢。
user1938357 2013年

您能一步一步描述一下吗?我正在尝试这样做,但无济于事。
WindRider 2013年

2
这也对我有用。注意:您不必复制(cp -R)源代码,可以很好地创建目录并将符号链接“ sources / android-XX”链接到“ ../../../sources/android-XX” : mkdir platforms/android-19/sources && ln -s ../../../sources/android-19 platforms/android-19/sources/android-19。当然,这假定您使用的平台和文件系统支持符号链接(Mac OS X和Linux – Windows不支持)
Joe

1
mklink.exelnWindows Vista及更高版本的-ish命令。

1
@Joe和saleemrashid1感谢您的提示,我将其包含在答案中
fsbmain 2014年

1

对我有效的方法是在Murach的Android编程中找到的答案。我陷入了尝试调试的困境,并试图将其工作了大约3个小时,然后转到下一页(从字面上看),该页面上显示“有时Eclipse将显示未找到源消息,因为....”(-headdesk-)

我的解决方案是打开“步骤筛选”,并添加要在调试时跳过的软件包。显然,Eclipse有时会遍历所有源代码库,而您只需要逐步遍历代码即可。您可以通过将要跳过的软件包添加到过滤器来绕过此操作。根据Murach的说法,您只能通过反复试验来做到这一点,首先选择所有软件包并添加它们。在继续调试时,您可能会发现需要向过滤器添加更多软件包。

具体步骤:1.打开步骤过滤;单击顶部工具栏中的如下所示的按钮:http : //i57.tinypic.com/x3iccp.png 2.转到窗口->首选项,然后在首选项对话框中,选择Java->调试- ->逐步过滤3.选择所有软件包。4.要添加其他过滤器,请单击“添加过滤器”,键入程序包的名称,末尾带有。*,然后单击“确定”。Murach建议在开始时添加以下通用软件包:--android。* --com.android。* --com.google。* --dalvik。* --libcore。* --org.apache。*这些软件包,单击“添加筛选器”,键入“ android。*”,然后单击确定。我最终在“步骤筛选器首选项”上安装了以下所有软件包。

安卓 ,android.app。,com.android。,com.google。com.ibm。,com.sun。,达尔维克。,java。,javax。,jrockit。,libcore。,org.apache。,org.omg。,太阳。,sunw。*,((最后一个是类,而不是包))java.lang.ClassLoader

我在对话框顶部选中了“使用步骤筛选器”,在底部选中了“逐步浏览筛选器”。单击“应用”,然后单击“确定”以关闭对话框。它应该工作。

祝好运!


我发现这很有帮助。我还添加了:--com.paypal。* --com.samsung.android。*,但我仍在寻找更多要添加的内容。一旦添加了凯特使用的所有功能以及上面的2个功能,我就可以更深入地进行该过程,然后再找到“未找到来源”。~~有趣的地方~~我只是在调试期间(而不是在常规运行期间)停留在这些“找不到源”问题上。我的应用在执行过程中发生了致命异常。因此,我的想法是“未找到源”错误可能不会导致我的致命意外。我可能是错的。
Sandi Laufenberg-Deku

0

我添加了appengine sdk和其他一些来源,这破坏了我的ADT :-(

我看到对于android-16和android-17,SDK Manager下载的平台库开始转到./sdk/sources,而在添加附加sdk之前,SDK Manager将平台发送到了./sdk/platforms。

看起来变化是由于appengine sdk造成的,但对于ADT,平台API应该定义为./sdk/platforms

路径./sdk/sources似乎是更通用的java位置,可能是“正确”的路径。因此,像往常一样,Android就是问题所在。从现在开始,我非常确定,根据我要编译的内容,我将同时需要./sdk/sources和./sdk/platforms。

因此,我将所有内容从./sdk/sources移至./sdk/platform,删除了./sdk/sources,然后创建了一个链接“ cd sdk && ln -s平台源”

现在一切正常;-)


0

对我而言,唯一有效的解决方案是fsbmain的答案。对他表示敬意。由于我的信誉度很低,所以我无法评论他的解决方案。但是我想分享我的知识;)

我正在Windows上工作,不想将整个源代码树复制到另一个位置。然后再次复制更新等内容。因此,我使用了一种可能性,可以插入一个符号链接,该链接自Windows Vista以来就非常有用(例如Linux)。对于Linux,您必须在fsbmain的答案下查看Joe的评论。

假设平台位于D:\ sdk \ platforms \ android-19中。现在,您必须创建一个子目录,然后再创建一个指向真实源文件夹的相对链接。

D:\sdk\platforms\android-19>mkdir sources
D:\sdk\platforms\android-19>cd sources
D:\sdk\platforms\android-19\sources>mklink /D android-19 ..\..\..\sources\android-19

现在重新启动Eclipse ...完成!

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.