【发布时间】:2009-02-04 20:34:40
【问题描述】:
当您使用 Eclipse 插件和调试器开发 Android 应用程序并获得堆栈跟踪时,您将看不到任何 SDK 源代码。您需要采取哪些步骤来解决此问题?假设是初学者 Java 程序员。
为了澄清,我希望 Eclipse 在我跳入堆栈帧时自动向我显示正确的源文件和行。我假设我需要找到正确的 SDK 源,将它们放在我的本地系统上,然后告诉 Eclipse 如何查找和使用它们。问题是,我该如何执行这些步骤。
【问题讨论】:
当您使用 Eclipse 插件和调试器开发 Android 应用程序并获得堆栈跟踪时,您将看不到任何 SDK 源代码。您需要采取哪些步骤来解决此问题?假设是初学者 Java 程序员。
为了澄清,我希望 Eclipse 在我跳入堆栈帧时自动向我显示正确的源文件和行。我假设我需要找到正确的 SDK 源,将它们放在我的本地系统上,然后告诉 Eclipse 如何查找和使用它们。问题是,我该如何执行这些步骤。
【问题讨论】:
感谢 #android IRC 频道上的 lukehutch,我被指向了一个 blog post,它描述了如何解决问题。
这甚至是一个问题的原因是因为 Google 没有在 SDK 中包含源代码。有一个bug 来解决这个问题。
解决方法,如博客文章中更详细描述的那样,是get the sources with git(我为 repo 命令指定了 release-1.0 分支,我希望与 SDK 1.0-r2 对应),收集所有 java 源文件并将它们位于sources/ 目录下的正确目录结构中(位于SDK 的android.jar 旁边),然后在Eclipse 中刷新jar,此时您可以浏览SDK 类源。
最后,在调试器中运行您的应用程序,直到您从 SDK 类获得堆栈跟踪,您将看到一个用于配置源的按钮:添加您创建的源目录。
上面的博客链接有一个小的 Python 脚本,可以收集所有的 java 文件并从中创建正确的目录结构。
【讨论】:
如果您在 Eclipse 中查看启动配置(调试->运行方式...), 您将看到一个名为“来源”的选项卡
如果您选择“添加”,然后提供包含相关源的存档或文件系统目录,则调试器应该允许您跟踪它们。
您可以从 Android 网站获取 SDK 的源代码,只需确保您的 Jar 和源代码版本相同。
【讨论】:
现在一些好心人已经在 Google 代码项目中提供了源 zip(最高 2.3.3),所以只需这样做:
cd path\to\android-sdk\platforms
svn checkout http://fanfq-android-demo.googlecode.com/svn/trunk/android-sdk-src/ .
然后,进入 Eclipse,然后:
现在在任何 Android 类上按 F3 时,您应该可以看到源代码,以及在调试器等中。
【讨论】: