【问题标题】:How to attach source to android.jar如何将源附加到 android.jar
【发布时间】:2011-08-10 19:33:35
【问题描述】:

我是 Android 新手。我正在使用 Eclipse IDE 在 Windows 操作系统中工作。我的简单应用程序有一个从数据库列填充列表的微调器。当我点击微调器类时,文件编辑器说找不到源并且 android.jar 没有源附件。

我下载了源代码,放在这个位置:

android-sdk-windows\platforms\android-8

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

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

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

【问题讨论】:

  • 更改您接受的答案!并明智地选择

标签: android eclipse


【解决方案1】:

现在真的很容易!

进入 Window->Android SDK Manager 并安装“Sources for Android SDK”。

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

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

它应该思考片刻,然后显示源代码!是的!

【讨论】:

  • 这对我来说只包括 API 的 14-16。否则对我来说是首选方式,谢谢!
  • 在 API 14 之前,他们没有在 SDK 管理器中添加任何“Android SDK 源”。此后的每个版本都包含该选项。大多数开发人员应该能够增加他们的目标 API(不是 minSDK)并在 Eclipse 中使用最新的 API 源。
  • 如果这不起作用,请参阅 fsbmain 的答案,它最终对我有用。
  • 这对我不起作用:附加源对话框希望找到 .zip 或 .jar 文件,并且不允许仅在目录上“点击确定”。这是 ADT v21,Eclipse Juno。
  • 关于 Joe 的评论:“附加源对话框希望找到 .zip 或 .jar 文件,并且不允许仅在目录上“点击确定”。”....实际上,您可以通过单击 PATH 字段右侧的 EXTERNAL FOLDER 按钮来解决此问题。默认情况下,外部位置路径设置为外部文件。 (在 SOURCE ATTACHMENT CONFIGURATION 窗口内)。
【解决方案2】:

除非您需要较旧的 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

【讨论】:

  • thomanski 的回答中提到的方法对我来说是唯一的方法。我在 Windows XP,Eclipse 3.7 很抱歉把这个作为答案,我还不能添加评论。
  • 我运行了安装,但没有源。还有更多事情要做吗?链接的文档对我没有帮助;我需要一步一步来。
  • 非常好。不幸的是,似乎没有办法只选择某些 android 版本,您必须下载所有版本的源代码。
  • 也为我工作。我也希望我可以选择一个特定的 android 版本。
  • SDK 管理器现在可以选择下载 Android 源代码。不幸的是,安装后它似乎没有任何效果。不用等,我解决了,请参阅下面的答案。
【解决方案3】:

如果将文件夹 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+(感谢 @saleemrashid1 在 cmets 中提及 mklink):

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. 

【讨论】:

  • 也为我工作。我也遇到了和你类似的问题。非常感谢。
  • 您能逐步描述一下吗?我正在尝试这个,但没有帮助。
  • 这对我也有用。注意:您不必复制(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 不支持)
  • mklink.exe 是 Windows Vista 及更高版本的ln-ish 命令。
  • @Joe 和 saleemrashid1 感谢您的提示,我将它们包含在答案中
【解决方案4】:

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

如果您遇到 spinner 的困难,请尝试获取示例代码,看看它是如何工作的: http://developer.android.com/resources/samples/get.html

祝你好运。 :)

更新

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

【讨论】:

  • 如果您至少在此处发布链接摘要会很好。如果该链接因任何原因断开,我们将丢失整个答案。
  • @Blowski 如果链接断开,那么我们将无法获取 jar 文件,因此我的摘要将不再有用... :) @Santhosh plz 将答案标记为已接受,以便其他人可以发现这更容易。
  • 你真的会乞求对一个公认的错误答案投赞成票吗?
  • @MichaelMrozek 感谢投票,只是想给其他人另一种选择。如你所愿删除,希望能让你开心。
  • @doreamon 我知道,我简直不敢相信我是个混蛋,否决了一个完全错误的答案。我希望对我的一些真正正确的答案投反对票会让你感觉更好
【解决方案5】:

对我有用的方法是在 Murach 的 Android Programming 中找到的答案。我在尝试调试时遇到了困难,并尝试解决了大约 3 个小时,然后转到下一页(字面意思),它说“有时 Eclipse 会显示未找到源的消息,因为......”(-headdesk-)

我的解决方案是打开 Step Filtering 并添加我想在调试时跳过的包。显然,Eclipse 有时会单步执行所有源代码库,而您只希望它单步执行您的代码。您可以通过将要跳过的包添加到过滤器来绕过此问题。根据 Murach 的说法,你只是通过反复试验来做到这一点,从选择所有包并添加它们开始。随着您继续调试,您可能会发现需要向过滤器添加更多包。

具体步骤: 1.开启步进过滤;单击顶部工具栏中的按钮,如下所示:http://i57.tinypic.com/x3iccp.png 2. 转到 Window-->Preferences,然后在 Preferences 对话框中,选择 Java-->Debug-->Step Filtering 3. 选择所有包。 4. 要添加其他过滤器,请单击“添加过滤器”,键入包的名称并在末尾带有 .*,然后单击“确定”。 Murach 建议在开始时添加这些常用包: - 安卓。* --com.android.* --com.google.* ——达尔维克。* --libcore.* --org.apache.* 因此,要添加其中一个包,请单击“添加过滤器”,键入“android.*”,然后单击“确定”。我最终在我的 Step Filter Preferences 中拥有了以下所有包。

android.、android.app.、com.android.、com.google.、com.ibm.、com.sun.、dalvik.、java.、javax.、jrockit.、libcore.、org.apache.、org.omg. , sun., sunw.*, ((最后一个是类,不是包)) java.lang.ClassLoader

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

祝你好运!

【讨论】:

  • 我发现这很有帮助。我还添加了:--com.paypal.* --com.samsung.android.*,我还在寻找更多要添加的内容。一旦我添加了凯特使用的所有这些,以及上面的 2 个,在我点击“未找到源”之前,我将在这个过程中走得更远。 ~~ 有趣的一点 ~~ 我只是在调试期间遇到这些“找不到源”问题,而不是在常规运行期间。我的应用程序在执行过程中出现了致命异常。所以我的想法是 SOURCE NOT FOUND 错误可能不会导致我的致命异常。我可能是错的。
【解决方案6】:

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

我看到对于 android-16 和 android-17,SDK 管理器下载的平台库开始转到 ./sdk/sources,而在我添加 appenginge sdk 之前,SDK 管理器将平台发送到 ./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 platform sources”

现在一切正常;-)

【讨论】:

    【解决方案7】:

    对我来说,唯一有效的解决方案是fsbmain 的答案。向他致敬。由于我的声誉低,我无法评论他的解决方案。但我想分享我的知识;)

    我在 Windows 上工作,不想将整个源代码树复制到另一个位置。并在更新等上再次复制。所以我使用了插入符号链接的可能性,该链接自 Windows Vista 以来就像一个魅力(或像 Linux)一样工作。对于 Linux,您必须在 fsbmain 的回答下查看 Joe 的评论。

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

    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 ...完成!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2013-08-10
      • 2011-04-09
      • 1970-01-01
      • 2017-06-27
      • 2011-10-10
      • 2011-06-12
      相关资源
      最近更新 更多