从调试视图打开源代码编辑.class Android R18更新后

2022-09-02 00:10:18

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

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

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


答案 1

在我终于找到一些时间和充分的理由更深入地研究这个问题之后,我将详细阐述一下Thornbjorn的答案。

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

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

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


答案 2

好吧,所以我讨厌成为“那个家伙”,考虑到这对工作的人的数量,但这对我根本不起作用。我的意思是“编辑源代码查找...”菜单项不在上下文菜单中。我没有错过在调试透视图中执行此操作的说明(大概是在调试透视图中的项目资源管理器中)。我在应用程序运行时和应用程序挂起时尝试了它。我尝试检查应用程序项目的菜单(大概是说明所指的)和库的项目。没有骰子。这是最新的Eclipse版本。

但是,我能够解决问题:

  1. 在应用程序或尝试链接其源代码的库中设置断点。实际上,只要您尝试链接其源代码的库具有一个函数,该函数将在命中断点时出现在调用堆栈上,就可以将其放在任何位置。
  2. 开始调试应用程序。
  3. 导航应用以命中断点。
  4. 确保您处于“调试”透视图中。
  5. 在“调试”选项卡(显示调用堆栈的位置)中,从库中找到任何函数。
  6. 右键单击该函数。“编辑源代码查找...”菜单选项应该在那里(靠近底部)。
  7. 从这里开始,说明与Styler的相同。单击“添加”,选择“Java项目”并添加您的项目(或多个项目)。
  8. 在退出“编辑源查找...”之前窗口,如果你像我一样,你会看到Eclipse选择将一堆你没有选择的东西添加到列表中。其中一些东西(可能在具有“Android私有库”等名称的可扩展项目下)可能是您刚刚添加源代码的库的jars。从列表中删除这些 jar。
  9. 利润!