【问题标题】:Unable to debug library project无法调试库项目
【发布时间】:2012-02-23 21:24:33
【问题描述】:

我刚刚升级到最新的 Android SDK 工具。现在,当我在库项目中设置断点并命中断点时,我只会得到一个空白的 .class 文件,并且无法再调试或单步执行源代码。我需要做什么来修复最新的 SDK 工具以添加对调试库项目的支持?

此时似乎根本无法调试库项目?

.classpath 文件

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="src" path="gen"/>
    <classpathentry kind="output" path="bin/classes"/>
</classpath>

这个类路径中的所有项目似乎都与我所包含的库项目相对应。这是主项目的类路径,不是库项目。

有谁知道自最新工具发布以来出现的有关如何执行库项目的任何新文档?现有文档似乎不再有效。我曾经能够单步调试和调试任何包含在顶级 Android 应用程序中的库。因此,要全面测试一个库,我可以通过交付主应用程序来完成。但现在看来,再也做不到了。

我是否需要将库设置为非库,然后单独调试和测试库,然后在交付之前将库设置回库?这似乎 SDK 自上次发布以来已经瘫痪。

【问题讨论】:

  • 可能重复question
  • 它不是这个的副本。我已经读过这个问题。它不能解决这个问题。此外,接受的答案也不起作用,正如问题“问题又回来了,我不再能够调试。我没有更改任何项目设置或任何东西。非常令人沮丧。”将来,当链接显然没有帮助时,请不要只是搜索和回复重复。我厌倦了被标记为重复的问题,这些问题不是或没有已知的好的解决方案。

标签: android


【解决方案1】:

它适用于我,但我必须在更新到最新的 Android SDK 工具后重新设置项目。我基本上删除了库项目并重新添加了它:

  • 右键单击项目 > 属性 > Android > 在此处删除库。
  • 右键单击项目 > 属性 > Java 构建路径 > 删除库 从源选项卡。
  • 右键项目>属性>安卓>重新添加 图书馆在这里。

* 如果您有任何包含库的库,那么您还需要对这些包含的库执行这些步骤。当您升级到新工具时,您基本上需要为项目中的每个库执行一次此操作。

您应该在导航器选项卡中的项目中看到您的库的源文件。我从这里单击库源并设置断点。我在调试中运行,断点工作正常。

不确定从项目上下文之外单击库源会发生什么。祝你好运!

编辑:

.classpath:

<classpath>
  <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
  <classpathentry kind="src" path="src"/>
  <classpathentry kind="src" path="gen"/>
  <classpathentry kind="output" path="bin/classes"/>
</classpath>

【讨论】:

  • 谢谢,我刚刚尝试了您的步骤,但没有成功。从导航器视图中没有库源。从 Library Projects 下的 Package View 中,我可以看到 .jar 文件并浏览 .class 文件,但看不到源代码。当我单击 .class 时,它说找不到源。如您所说,我是否需要做一些事情才能让源显示在“导航器”选项卡中?
  • 嗯,您可以发布您的项目的.classpath 文件吗?我注意到我在更新 SDK 时发生了变化。
  • 在新的SDK中,他们将所有的库路径都移到了project.properties,所以我认为这对于主项目的.classpath是可以的。我注意到在我的一个项目中,调试和跳转到库代码不起作用,它在库的.classpath 中有&lt;classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/&gt;。我更改了库的 .classpath 以删除 exported="true",重新启动 eclipse 并且它起作用了......太奇怪了。
  • 你也被这个难住了吗?
  • 当我从库的.classpath 中删除exported="true" 时,我可以进行调试,但库源文件不会显示在我的主项目下。所以它确实工作得很好,但不知道为什么它与我的其他项目不同。
猜你喜欢
  • 2011-12-07
  • 2015-12-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-05
  • 1970-01-01
  • 2021-07-30
  • 1970-01-01
  • 2011-12-15
相关资源
最近更新 更多