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



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

EDIT:当我在我的代码中遇到断点时,它会把我带到MyFile.class,而不是MyFile.java,所以我可以看到

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

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

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

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

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

好吧,所以我不想成为"那个人",因为这对很多人都有效,但对我来说根本不起作用。我的意思是"编辑源查找…"菜单项不在上下文菜单中。我没有错过在调试透视图中执行此操作的说明(可能是在调试透视表中的项目资源管理器中)。我在应用程序运行和应用程序挂起时尝试了它。我试着检查应用程序项目的菜单(大概是说明所指的)和库项目的菜单。没有骰子。这是最新的Eclipse构建。

然而,我解决了这个问题:

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

由于某些原因,Eclipse不相信类文件来自Java文件。这通常是一个配置错误的构建路径,或者是一个jar文件,而不是生成jar文件的项目。

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

最新更新