无法使用 ADT v14 调试库项目 - 找不到源

Posted

技术标签:

【中文标题】无法使用 ADT v14 调试库项目 - 找不到源【英文标题】:Unable to Debug Library Projects with ADT v14 - Source Not Found 【发布时间】:2011-12-15 11:57:21 【问题描述】:

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

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

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

编辑

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

【问题讨论】:

我也有同样的问题!有人找到解决方法,因为我的手指发痒! 同样的问题!!没有一个解决方案对我有用。因此,我无法再调试库文件(无法在类文件中添加或删除断点) 有没有人找到一个可行的解决方案?接受的答案现在有效。 【参考方案1】:

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

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

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

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

【讨论】:

上面链接中的评论 2 对我来说效果很好。 code.google.com/p/android/issues/detail?id=20731#c2 另一个注意事项,这对我很有效,我只是选择了我当前的测试项目和库项目并将其移至默认值之上。 +1 谢谢!【参考方案2】:

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

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

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

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

【讨论】:

好吧,将“src”和“gen”文件夹移到构建顺序的底部后,仍然无法调试。在此之后,我从添加库项目的“Android”选项卡部分中删除了库项目引用。重新添加库项目后,我现在可以调试了。我不确定是什么组合解决了它,但我相信更改构建顺序会有所帮助。感谢您的帮助 很高兴我能帮上忙。关于将库删除和重新添加到项目的好信息。我喜欢他们更好地引用库的这种方式,但谷歌可能应该能够更好地清理它,以避免当每个人都更新时所有这些小问题。 只是作为一个更新,问题又回来了,所以我真的不能说我找到了解决方案。 @hooked82 您关于删除库并将其添加回来的建议也对我有所帮助。谢谢 hooked82 和 ssuperz28! 这有帮助,但前提是 src 文件夹位于 gen 文件夹之上。【参考方案3】:

我今天在一个项目中遇到了同样的问题。该项目由一个具有两个库依赖项的应用程序组成。在调试期间以及在覆盖方法时使用自动完成时我看不到代码 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 一起使用。

【讨论】:

【参考方案4】:

以下在 Eclipse Juno 上对我有用:

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

在“项目”选项卡中,添加了我的库项目。 在“订购和导出”选项卡中,将我的库项目移到顶部,并检查它们

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

【讨论】:

这个订单对我有用:(从顶部开始)Android Dependencies、Android Private Libraries、SRC、GEN【参考方案5】:

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

【讨论】:

我没有尝试过这种方法,但我认为它不是能够正确调试应用程序的可接受解决方案。不过感谢您的提示【参考方案6】:

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

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

【讨论】:

【参考方案7】:

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

【讨论】:

以上是关于无法使用 ADT v14 调试库项目 - 找不到源的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse java调试:找不到源

如何在 Eclipse 中使用 Gradle 和 ADT?

eclipse调试找不到源解决办法

Eclipse 调试:远程调试时找不到源

命令“颤振:新项目”导致错误(找不到命令“颤振.createProject”),我无法在 VSCODE 上调试颤振项目

Eclipse Neon.2 无法识别 Android ADT