29

自从升级我当前的项目以使用 Eclipse 中的新 R14 工具后,我现在无法调试我的库项目中存在的任何代码。

当我在库项目代码中遇到断点时,不是 Eclipse 打开原始源文件,而是打开 JAR 中包含的源文件的只读副本,并显示消息“未找到源”。

我已经四处寻找解决方案,但还没有遇到任何问题。还有其他人有什么建议吗?无法调试是相当痛苦的。

编辑

问题又回来了,我不再能够调试。我没有改变任何项目设置或任何东西。非常令人沮丧。

4

7 回答 7

44

尝试了以上所有方法,但它对我不起作用,但是这里详述的解决方法确实如此。

http://code.google.com/p/android/issues/detail?id=20731

  1. 开始调试,并一直运行直到遇到断点(并准确地获得一个 .class 文件而不是您想要的 .java 文件)
  2. 右键单击 Debug 透视图的 Debug 视图(例如在调用堆栈上),然后选择“Edit Source Lookup Path”
  3. 通过“添加...”>“Java项目”>“全选”将所有项目添加到“默认”之上

(我正在使用来自http://tools.android.com/download的 ADT 15.0.2 预览版)

于 2011-11-03T09:02:47.500 回答
17

在遇到这个问题并做了一些研究之后,我遇到了这个线程和另一个给我提示的线程。我已经在拔头发了。

事实证明,问题在于您的项目的构建顺序(无论如何我的都是)。由于 ADT/SDK v14 更改了引用库项目的方式,因此构建顺序需要正确。确保首先构建您的应用程序使用的所有库。我只是将每个项目的“src”和“gen”文件夹移动到底部,现在它首先构建库,我可以调试它并通过主项目查看我的库文件的源代码。

如果有人不知道在哪里执行此操作,请在 Eclipse 中右键单击您的项目和“构建路径”,然后单击“配置构建路径”。然后,在“订购和导出”选项卡上,将项目的两个文件夹移动到库下方列表的底部。我为我的所有项目和图书馆项目都这样做了。

您也可以在 Eclipse 中从 Windows->Preferences->General->Workspace->Build Order 全局执行此操作,并将您的库项目移动到顶部。我认为每个项目中定义的构建顺序将覆盖它,因此您可能希望在这两个地方都这样做以解决现在和未来项目的问题。

于 2011-10-27T21:08:50.257 回答
2

以下在 Eclipse Juno 上为我工作:

在项目属性/Java 构建路径中:

  • 在“项目”选项卡中,添加了我的库项目。
  • 在 Order and Export 选项卡中,将我的库项目移到顶部,并检查它们

不确定是否相关,但 Android SDK 工具是 rev 20.0.3,Android SDK 平台工具是 14。

于 2012-11-13T15:34:21.170 回答
2

我今天在一个项目中遇到了同样的问题。该项目由一个具有两个库依赖项的应用程序组成。在调试期间以及在覆盖方法时使用自动完成时,我看不到代码 Eclipse 无法推断出正确的参数名称。

首先,问题通过显示“gen”文件夹被用作包含源的文件夹来表现出来。要检查这是否是同一个问题,请转到您的应用项目,打开 Android 依赖项并查看库依赖项的属性。位置路径表示 /libraryprojectname/gen。

如果这也是您的问题,请转到每个库项目的“订购和导出”选项卡,并将“gen”项目移动到“src”项目下方。一旦你点击 OK Eclipse 就会工作一点,当你检查 Android 依赖属性时,位置路径应该是:/libraryprojectname/src。打开单击依赖项并打开 jar 中的任何类。它应该显示来源。

我将 ADT 插件 20.0.3 与 Android SDK 工具 20.0.3 和 Android SDK 平台工具 14 一起使用。

于 2012-10-31T11:03:05.133 回答
0

Juno 内部的 ADT 版本 21 也会出现此问题。作为一种解决方法,在调试透视图的“调试”视图中(您可以看到线程和方法调用跟踪),右键单击并编辑源查找路径。

于 2013-04-05T13:32:11.057 回答
0

有时这发生在我身上。不确定原因,但我解决的方法是:

从 Eclipse 中删除主项目。-- 关闭Eclipse -- 删除库项目中的jar文件 -- 打开Eclipse -- 等待库项目编译 -- 导入主项目

于 2011-10-27T14:01:08.943 回答
0

我假设您正在打开图书馆项目,并在那里放置了刹车点。试试这个:在主项目上,从包资源管理器中打开 Library Projects->[yourlibrary.jar]->[yourfile.class],然后在 .class 文件中放置刹车点。这至少对我有用:)

于 2011-10-27T08:56:00.633 回答