22

当我在 Eclipse 中调试我的代码时,当我打开编辑器发现我无法编辑它时,我很生气,因为我实际上正在查看 .class 文件的源代码。在调试模式下,如何让 Eclipse 打开 .java 文件而不是 .class 文件?

编辑:当我在代码中遇到断点时,它会将我带到 MyFile.class,而不是 MyFile.java,所以我可以看到我的代码但不能编辑它。

编辑:我猜它与 Android 和 ADT R18 有关

4

4 回答 4

54

在我终于找到了一些时间和充分的理由来更深入地研究这个问题之后,我将详细说明 Thornbjorn 的回答。

最近,Google 改变了您的 Android 项目打包外部 Android 库的方式。在 ADT R17(我认为)中,它开始将外部项目源打包到 .jar 文件中,并将它们直接包含到您的项目中的 Android Dependencies 或 /libs 文件夹中。

现在,当调试器遇到断点时,它会在 .jar 中显示您的源代码,本质上是告诉您编辑 .class 文件。问题是这个文件是只读的,所以你必须手动去寻找你的 .java 源代码。(疼痛)

修复方法是在调试视图中右键单击项目名称,然后从菜单中选择“编辑源查找...”。从那里删除默认查找路径。之后,手动添加项目引用的关联项目(不是 jar)。这是通过单击添加,选择 Java 项目,然后检查适当的项目来完成的。

于 2012-07-17T16:42:26.297 回答
7

好的,所以我讨厌成为“那个人”,考虑到这对多少人有用,但这对我来说根本不起作用。我的意思是“编辑源查找...”菜单项不在上下文菜单中。我没有错过在 Debug Perspective 中执行此操作的指令(大概在 Debug Perspective 的 Project Explorer 中)。我在应用程序运行和应用程序暂停时尝试了它。我尝试检查应用程序项目的菜单(大概是说明所指的内容)和库项目的菜单。没有骰子。这是最新的 Eclipse 版本。

但是,我能够解决这个问题:

  1. 在您的应用程序或您尝试为其链接源代码的库中设置断点。实际上,只要您尝试为其链接源的库有一个在断点被命中时将出现在调用堆栈上的函数,您实际上就可以将它放在任何地方。
  2. 开始调试您的应用程序。
  3. 导航您的应用程序以命中断点。
  4. 确保您在 Debug 透视图中。
  5. 在“调试”选项卡(出现调用堆栈的位置)中,找到库中的任何函数。
  6. 右键单击该函数。“编辑源查找...”菜单选项应该在那里(靠近底部)。
  7. 从这里开始,说明与 Styler 的说明相同。单击“添加”,选择“Java 项目”并添加您的项目(或多个项目)。
  8. 在您退出“Edit Source Lookup...”窗口之前,如果您像我一样,您会看到 Eclipse 已选择将一堆您没有选择的东西添加到列表中。其中一些东西(可能在名称为“Android Private Libraries”的可扩展项目下)可能是您刚刚为其添加源的库的 jar。从列表中删除这些 jar。
  9. 利润!
于 2013-10-01T01:56:04.797 回答
6
  1. 打开main project properties -> Java Build Path -> Projects选项卡并添加主项目所依赖的项目。
  2. 切换到Order and Export选项卡并取消选中Android Dependencies
  3. 享受
于 2014-01-06T05:03:56.990 回答
2

出于某种原因,Eclipse 不相信类文件来自您的 Java 文件。这通常是错误配置的构建路径,或使用 jar 文件而不是生成 jar 文件的项目。

查看项目管理器面板(<->按钮)以查看 Eclipse 在何处找到类文件,然后找出为什么它使用该位置而不是您的项目与源文件。

于 2012-07-11T21:13:19.017 回答